【问题标题】:Exporting from SAS Enterprise Guide to multiple tabs in Excel (.xlsx)从 SAS Enterprise Guide 导出到 Excel (.xlsx) 中的多个选项卡
【发布时间】:2015-12-25 17:01:46
【问题描述】:

我正在尝试将 SAS Enterprise Guide 的输出导出到 Microsoft Excel 2010 (.xlsx),每个工作表输出多个表格,每个工作簿输出多个工作表。我希望将多个 proc sql 输出导出到单个选项卡,以及将其他输出导出到同一个工作表中的多个选项卡。我有允许我执行此操作的代码(见下文),但我无法将其导出到 SAS Enterprise Guide 中的多个程序中。理想情况下,我希望 SAS Enterprise Guide 流程的每个程序都将输出导出到同一个 Excel 文件中的不同选项卡。例如,下面的代码在同一个程序中有效,但为了我自己的组织,我希望“ID 和年龄”proc sql 代码与“诊断和治疗”代码在不同的程序中.

有没有办法做到这一点?

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

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;

【问题讨论】:

    标签: excel sas enterprise-guide sas-ods


    【解决方案1】:

    很遗憾,无法在 Enterprise Guide 中的多个程序中保持 ODS EXCEL 目标打开。每个程序都以 ODS _ALL_ CLOSE; 开始和结束,这会关闭目标,并且由于 ODS 无法更新电子表格(还没有?),因此排除了您建议的用法。

    但是,您可以将输出设置为宏。然后在ods excel 块内有一个调用所有这些宏的程序。这将允许您做您想做的事情 - 代价是将所有这些数据集和输出放在一个最终输出程序中,而不是将它们放在单独的程序中。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多