我正在尝试将Excel工作表导入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 :(得分:2)
让我们看看错误消息:
ERROR: XLSX file does not exist -> /config/Lev1/SASApp/C:\Users\me\Documents//Transactions.xlsx
查看文件路径。
/config/Lev1/SASApp/
显然是Linux / Unix服务器上的路径。这是运行Workspace服务器时的默认位置。从此,我猜你会通过企业指南(EG)与SAS连接。
C:\Users\me\Documents//Transactions.xlsx
这是您输入的路径。
那发生了什么? SAS正在远程服务器上运行 - 一台运行Linux / UNIX的服务器。您要求SAS打开" C:\ Users \ me \ Documents // Transactions.xlsx"。
然而," C:\ stuff \ more \ file"在Linux / UNIX上不是有效的文件系统路径。所以SAS认为这是文件名并在默认位置" / config / Lev1 / SASApp"
中查找要解决此问题,您需要将XLSX文件上传到服务器。然后在代码中使用服务器上文件的路径。如果您不确定如何执行此操作,请与您的系统管理员联系。
或者,您可以使用EG中的数据导入向导。我不是它的粉丝,因为它有时会搞砸,但确实有效。
答案 1 :(得分:0)
如果您尚未导入文件,请在导入之前关闭该文件。您可能还在引用文件夹而不是示例中的文件(除非Transactions.xlsx是您要导入的文件)
答案 2 :(得分:0)
如果使用Enterprise Guide或DI运行此代码(即您将代码提交到远程SAS服务器),则需要将文件传输到服务器端。 您可以使用PROC UPLOAD传输文件。