【发布时间】:2018-01-16 14:00:26
【问题描述】:
我在 SASContentServer 中有一些要转换为数据集的 excel 文件。
这是我正在使用的代码
*filename out "/app/sas/test.xlsx";
filename out temp;
%let model_rk_val = "10013";
%let model_id_val = "model";
proc http
method="get"
url="http://server:port/SASContentServer/repository/default/sasdav/Products/SASModelRisk/ModelRiskMgtMid-Tier/Content/customObject1/&model_rk_val/&model_id_val..xlsx"
webUserName="sasmrmad"
webPassword="xxxxxxx"
out=out;
run;
*libname mip_in "/app/sas/folder";
proc import datafile = out
DBMS=xlsx
out=mip_in.vars;
sheet='vars';
RUN;
proc import datafile = out
DBMS=xlsx
out=mip_in.outest;
sheet='outest';
RUN;
如果我使用filename out temp,那么系统会给我错误提示 tempfile.xlsx 丢失,因为文件名 out temp 在临时文件夹中创建了一个没有任何扩展名的临时文件,DBMS=xlsx 查找扩展名为 .xlsx 的文件,因为我的临时文件没有扩展名,它会报错。
如果我创建一个像 test.xlsx 这样的文件并使用filename out "/app/sas/test.xlsx";system 表示该文件已损坏,即使我创建了一个新的 excel 文件,错误与文件已损坏或文件格式或扩展名无效的错误相同。
您能告诉我如何解决这个问题,或者我可以使用其他方法将我的 excel 文件转换为数据集吗?
【问题讨论】:
-
几个问题。 1. 下载后可以用Excel打开文件吗? 2. 请粘贴您收到的实际错误。 3. 在 Linux 控制台上,执行
head /app/sas/test.xlsx并确保您拥有看起来像 Excel 文件的文件——在此处添加结果。 -
1) 不,我无法打开 Excel 表。
-
错误:打开 XLSX 文件时出错 -> /app/sastest.xlsx 。它要么不是 Excel 电子表格,要么已损坏。错误代码=8014900A(文件名为“/app/sas/test.xlsx”)
-
@DomPazz 你的意思是文件输出“head /app/sas/test.xlsx”;
-
我假设您可以访问系统操作系统。在命令提示符下,键入
head /app/sas/test.xlsx。或者,在文本编辑器中打开文件并查看它的外观。如果它是 XLSX 文件,那么您应该无法读取它。 Excel 无法打开文件的事实告诉我,这不是 XLSX 引擎的问题,而是文件创建的问题。