如何使用SAS将2个数据集导出到Excel“ Sheet1”中,以及将另外2个数据集导出到“ Sheet2”中

时间:2019-05-21 08:40:05

标签: excel sas dataset export

早上好! 我想使用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。

请告诉我是否有办法...

2 个答案:

答案 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,可以确认它是否可以工作。