如何将中的2个数据集导出到excel“;活页1和x201D;和另一组2个数据集到“;活页2和x201D;使用SAS

如何将中的2个数据集导出到excel“;活页1和x201D;和另一组2个数据集到“;活页2和x201D;使用SAS,excel,sas,dataset,export,Excel,Sas,Dataset,Export,早上好! 我想使用SAS将一些数据集导出到excel,但这里有一些挑战。这两个数据集都是唯一的,我们无法合并或追加 有两个程序分别创建两个数据集,但是,我想将program1输出数据集(2个数据集)导出到excel sheet1,将Program2输出数据集(2个数据集)导出到excel sheet2 我试着用Proc print,但没用 ods excel file="&OUTFILE." options(sheet_interval="none" sheet_name="s

早上好! 我想使用SAS将一些数据集导出到excel,但这里有一些挑战。这两个数据集都是唯一的,我们无法合并或追加

有两个程序分别创建两个数据集,但是,我想将program1输出数据集(2个数据集)导出到excel sheet1,将Program2输出数据集(2个数据集)导出到excel sheet2

我试着用Proc print,但没用

    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工作表,而不是将两个数据集导出到sheet1,将另外两个数据集导出到Sheet2


请让我知道是否有任何方法…

乍一看,这似乎是一个错误,所以你可以尝试调查一下。 作为一个更简单的解决方案,我建议使用DATA STEP使用LIBNAME导出数据:

libname xllib xlsx "&outpath/filename.xlsx";
data xllib.sometabname;
 set sashelp.cars;
 run;
libname myxl clear;

此代码从
sashelp.cars
中提取数据,并将其写入名为
sometabname

的选项卡上的
filename
工作簿。乍一看,这似乎是一个错误,因此您可以尝试对其进行调查。 作为一个更简单的解决方案,我建议使用DATA STEP使用LIBNAME导出数据:

libname xllib xlsx "&outpath/filename.xlsx";
data xllib.sometabname;
 set sashelp.cars;
 run;
libname myxl clear;

此代码从
sashelp.cars
中提取数据,并将其写入名为
sometab name

选项卡上的
filename
工作簿中。如果您有最新的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;
注意:我在第二个选项中添加了“now”而不是“none”。这似乎是强制更改工作表所必需的


这不适用于ODS EXCEL的早期版本,但在9.4 TSM3或TSM4中,我相信它已经修复。我有TSM6,可以确认它可以在上面工作。

如果您有最新的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;
注意:我在第二个选项中添加了“now”而不是“none”。这似乎是强制更改工作表所必需的


这不适用于ODS EXCEL的早期版本,但在9.4 TSM3或TSM4中,我相信它已经修复。我有TSM6,可以确认它可以在上面工作。

为什么标记Excel-这是SAS编程…您有什么版本的SAS?这是9.4M2中已知的错误,但在9.4M3 afaik中已修复。虽然有一个已知的解决方法,但这取决于您的版本。@SolarMike,以便人们可以搜索包含这两个标记的问题?@RobertPenridge,以便查找基于excel的问题来回答,人们得到了这些,但这并不相关…@SolarMike您可以使用以下搜索查询轻松排除同时包含
sas
excel
标记的问题:
[excel]-[sas]
。或者,您可以阅读问题的标题(该标题明确说明“使用SAS”作为标题的一部分),或者在单击问题之前查看标记。在上包含
excel
标记的195k个问题中,只有1k个问题也包含
sas
标记。因此,不管怎样,忽略每200个问题中的一个都不应该是太大的考验。就我个人而言,我仍然认为列出这两个标签的好处大于坏处。为什么标记Excel?这是SAS编程…您有什么版本的SAS?这是9.4M2中已知的错误,但在9.4M3 afaik中已修复。虽然有一个已知的解决方法,但这取决于您的版本。@SolarMike,以便人们可以搜索包含这两个标记的问题?@RobertPenridge,以便查找基于excel的问题来回答,人们得到了这些,但这并不相关…@SolarMike您可以使用以下搜索查询轻松排除同时包含
sas
excel
标记的问题:
[excel]-[sas]
。或者,您可以阅读问题的标题(该标题明确说明“使用SAS”作为标题的一部分),或者在单击问题之前查看标记。在上包含
excel
标记的195k个问题中,只有1k个问题也包含
sas
标记。因此,不管怎样,忽略每200个问题中的一个都不应该是太大的考验。就个人而言,我仍然认为列出这两个标签的好处大于坏处。