我使用此代码
proc export data=goldsheet_invalid outfile="C:\Documents and Settings\sasadm\Desktop\gold.xls" dbms=xls replace;
sheet="gold";
run;
proc export data=platinumsheet_invalid outfile="C:\Documents and Settings\sasadm\Desktop\gold.xls" dbms=xls replace;
sheet="platinum";
run;
proc export data=titaniumsheet_invalid outfile="C:\Documents and Settings\sasadm\Desktop\gold.xls" dbms=xls replace;
sheet="titanium";
run;
错误:语句无效或使用的顺序不正确
注意: - 已经尝试过dbms = xlsx或dbms = EXCELCS但不能正常工作
答案 0 :(得分:0)
使用ODS(输出交付系统)语句,可以使用旧版SAS完成此操作,而不是使用PROC EXPORT。走这条路线并不像PROC EXPORT那样干净,但如果你想要的只是将这些数据集中的数据提供给单个Excel工作簿,并将每个proc语句的结果放在不同的工作表上,这样就可以了。
在这种情况下,完成所需内容的代码将是:
ods tagsets.excelxp file='C:\temp\gold.xml' options(sheet_name = 'Gold' sheet_interval='proc');
proc print data=goldsheet_invalid;
run;
ods tagsets.excelxp options(sheet_name = 'Platinum');
proc print data=platinumsheet_invalid;
run;
ods tagsets.excelxp options(sheet_name = 'Titanium');
proc print data=titaniumsheet_invalid;
run;
ods tagsets.excelxp close;
您会注意到创建的文件扩展名是XML,这是必需的。当您在Excel中加载文件时,它将按预期显示,并随时从那里更新文件扩展名。
有关SAS和ODS的更多详细信息,请访问:https://support.sas.com/rnd/base/ods/odsmarkup/TipSheet_ods_xl_xp.pdf