从SAS Enterprise Guide导出到Excel中的多个选项卡(.xlsx)

我试图将SAS Enterprise Guide中的输出导出到Microsoft Excel 2010(.xlsx),每张纸上输出多个表格,每个工作簿输出多张表格。 我想有几个proc sql输出导出到单个选项卡,以及其他输出到同一工作表中的多个选项卡。 我有允许我这样做的代码(见下文),但是我不能在SAS Enterprise Guide中的多个程序中导出它。 理想情况下,我希望我的SAS Enterprise Guidestream程的每个程序将输出导出到同一个Excel文件中的不同选项卡。 例如,当下面的代码全部在同一个程序中时,下面的代码就可以工作,但是我希望“ID和年龄”过程sql代码在不同的程序中,然后是“诊断和处理”代码,用于我自己的组织。

有没有办法做到这一点?

到目前为止,当我尝试将下面的代码拆分为两个程序时,它只是用第二个代码replace第一个输出,而不是创build两个单独的工作表。

goptions device=actximg; /*suppresses Error*/ ods excel file="C:\Example.xlsx" style=htmlblue options( sheet_interval="none" sheet_name="ID and Age" embedded_titles='yes' ); proc sql;title "Patient list"; select patient_id, date from data;run; proc sql;title "Patients under 2"; select patient_id, dob, age_in_years from data where age_in_years < 2;run; ods excel options( sheet_interval="none" sheet_name="Diagnosis and Treatment" embedded_titles='yes' ); proc sql;title "Diagnosis for patients under 2"; select patient_id, diagnosis from data where age_in_years < 2;run; proc sql;title "Treatment for patients under 2"; select patient_id, treatment from data where age_in_years < 2;run; ods excel close; 

企业指南中的多个程序不能保持ODS EXCEL目标的开放。 每个程序以ODS _ALL_ CLOSE;开始和结束ODS _ALL_ CLOSE; ,closures了目的地,而且由于ODS不能更新电子表格(还没有?),这就排除了你的build议。

然而,你可以做的是把你的输出设置为macros。 然后有一个程序调用所有这些macros,在ods excel块内。 这将允许你做你想要的 – 以一个最终输出程序中的所有这些数据集和输出为代价,而不是在单独的程序中。

或者,您可以在单独的程序中执行所有计算,但是有一个主输出程序输出所有最终结果(保存在数据集或ODS DOCUMENT对象中)。