SAS导入 – 文件不存在

我试图将一张excel表导入SAS,但由于某些原因,SAS无法find该工作簿。 这是我得到的代码和错误:

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中? 有没有办法做到这一点,而不使用导入向导?

提前致谢!

我们来看看这个错误信息:

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

看看文件path。

 /config/Lev1/SASApp/ 

显然是Linux / Unix服务器上的一个path。 这是运行Workspace服务器时的默认位置。 从这里,我会猜测你通过企业指南(EG)连接到SAS。

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

这是你input的path。

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

但是,“C:\ stuff \ more \ file”在Linux / UNIX上不是有效的文件系统path。 所以SAS认为这是文件名,并在默认位置“/ config / Lev1 / SASApp”

要解决这个问题,你需要把你的XLSXfile upload到服务器。 然后在代码中使用服务器上文件的path。 如果您不确定如何操作,请与系统pipe理员联系。

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

如果使用Enterprise Guide或DI(即将代码提交给远程SAS服务器)运行此代码,则需要将该文件传输到服务器端。 您可以使用PROC UPLOAD传输文件。

如果尚未导入,请先closures该文件。 您可能也会在您的示例中引用文件夹而不是文件(除非Transactions.xlsx是您要导入的文件)