将数据集导出到sas中的一个excel文件的多个工作表中

时间:2016-08-02 14:56:28

标签: sas

我使用此代码

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但不能正常工作

1 个答案:

答案 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