2016-04-20 71 views
1

我想将excel表导入SAS,但由于某些原因,SAS无法找到工作簿。下面是代码,我认为我得到的错误:SAS导入 - 文件不存在

PROC IMPORT Out=Transactionsmaster DATAFILE="C:\Users\me\Documents\Transactions" 
DBMS=XLSX Replace; 
GETNAMES=YES; 
RUN; 

错误:XLSX文件不存在 - > /config/Lev1/SASApp/C:\Users\me\Documents//Transactions.xlsx

我必须首先将Excel表导入SASApp吗?有没有办法做到这一点,而不使用导入向导?

在此先感谢!

回答

0

如果您尚未导入文件,请先关闭该文件。你也可以在你的例子引用的文件夹,而不是一个文件(除非Transactions.xlsx是要导入的文件)

0

如果您运行使用企业指南或DI代码(即您所提交的代码到远程SAS服务器),您需要将文件传输到服务器端。 您可以使用PROC UPLOAD传输文件。

2

让我们来看看错误信息:

ERROR: XLSX file does not exist -> /config/Lev1/SASApp/C:\Users\me\Documents//Transactions.xlsx 

看文件路径。

/config/Lev1/SASApp/ 

显然是Linux/Unix服务器上的路径。这是运行Workspace服务器时的默认位置。由此,我猜你会通过Enterprise Guide(EG)连接到SAS。

C:\Users\me\Documents//Transactions.xlsx 

这是您输入的路径。

那么发生了什么? SAS运行在远程服务器上 - 一台运行Linux/UNIX的服务器。您要求SAS打开“C:\ Users \ me \ Documents // Transactions.xlsx”。

然而, “C:\东西\更多\文件” 是不是在Linux/UNIX有效的文件系统路径。因此,SAS假定这是文件名和

要解决这个问题,需要在您的XLSX文件上传到服务器的默认位置“/配置/ LEV1/SASApp”看着它。然后在代码中使用服务器上文件的路径。如果您不确定如何执行此操作,请与系统管理员联系。

或者,您可以使用EG中​​的数据导入向导。我不喜欢它,因为它有时会搞砸,但它确实有效。

+0

听起来像这就是问题,谢谢一堆! – paul

+0

N/P。这实际上是一个常见问题。我一直为我们的用户回答这个问题。请接受,如果这完全回答这个问题。 – DomPazz