早上好! 我想使用SAS导出一些数据集以使其表现出色,但是这里有一些挑战。这两个数据集都是唯一的,我们无法合并或追加。
有2个程序分别创建2个数据集,但是,我想将program1输出数据集(2个数据集)导出到excel sheet1,将Program2输出数据集'(2个数据集)导出到Excel sheet2。
我尝试使用Proc打印,但是没有用
ods excel file="&OUTFILE." options(sheet_interval="none" sheet_name="sheet1");
TITLE 'CLOSED_SR_VOLUMES_BY_PERCENT';
proc print data=CLOSED_SR_VOLUMES_BY_PERCENT;
run;
TITLE 'CLOSED_SR_VOLUMES_BY_VOLUME';
proc print data=CLOSED_SR_VOLUMES_BY_MONTH;
run;
ods excel options(sheet_interval="none" sheet_name="sheet2");
TITLE 'ACTIVE_SR_VOLUMES_BY_VOLUME';
proc print data=SR_VOLUMES_BY_MONTH;
run;
TITLE 'ACTIVE_SR_VOLUMES_BY_PERCENT';
proc print data=SR_VOLUMES_BY_PERCENT;
run;
ods excel close;
我没有收到任何错误,但是所有数据集都将其导出到一个excel工作表,而不是将2个数据集导出到sheet1,将另外2个数据集导出到Sheet2。
请告诉我是否有办法...
答案 0 :(得分:1)
乍一看好像是known ods bug,所以您可以尝试对其进行调查。 作为一个更简单的解决方案,我建议使用DATA STEP来使用LIBNAME导出数据:
libname xllib xlsx "&outpath/filename.xlsx";
data xllib.sometabname;
set sashelp.cars;
run;
libname myxl clear;
此代码从sashelp.cars
中提取数据并将其写入名为filename
的选项卡上的sometabname
工作簿中。
答案 1 :(得分:1)
如果您拥有SAS的最新维护版本,则可以进行一些小的修改:
ods excel file="&OUTFILE." options(sheet_interval='none' sheet_name="sheet1");
TITLE 'CLOSED_SR_VOLUMES_BY_PERCENT';
proc print data=sashelp.class;
run;
TITLE 'CLOSED_SR_VOLUMES_BY_VOLUME';
proc print data=sashelp.class;
run;
ods excel options(sheet_interval='now' sheet_name="sheet2");
TITLE 'ACTIVE_SR_VOLUMES_BY_VOLUME';
proc print data=sashelp.class;
run;
TITLE 'ACTIVE_SR_VOLUMES_BY_PERCENT';
proc print data=sashelp.class;
run;
ods excel close;
请注意,我在第二个中添加了“现在”而不是“无”。这似乎是强制更改工作表所必需的。
这不适用于早期版本的ODS EXCEL,但是无论是在9.4 TSM3还是TSM4中,我都认为它已修复。我有TSM6,可以确认它是否可以工作。