【问题标题】:Trying to add a description sheet to an xlsx report尝试向 xlsx 报告添加描述表
【发布时间】:2020-02-06 01:37:27
【问题描述】:

目前,我有一个使用 proc export 的数据转储报告,我经常运行它,所有聚合都通过 put() 语句写入报告电子邮件。

差不多

x.aggre_0 看起来像

   total 1 total 2 total 3
    123      321    567  

当前数据步长如下所示:

 data x.aggr_1;
 set x.aggre_0;
 call symput("e-mailcontents",
 cat('Summary #1:',total 1)
 cat('Summary #2:',total 2)
 cat('Summary #3:', total 3))

我只是将put(&e-mailcontents) 添加到我的电子邮件 sas 文件中。

这就是现在流程的概要。

收到了一个新请求,要求将摘要选项卡添加到报告中,而不是在电子邮件中插入所有聚合。但是,我不确定我将如何使用 proc 导出将文本附加到 xlsx 上。由于我无法控制的限制,ODS Excel 和 xlsx 引擎不是一个选项。

我已将聚合保存到 x.aggre_0 中,但我不确定如何将其放置在同一报告的另一张表中。

我在想一些事情,就是创建一个包含一列的新表,然后让它像这样逐行显示,但我不知道怎么做。

   column_name
 1 Summary #1: 123
 2 Summary #2: 321
 3 Summary #3: 567 

【问题讨论】:

  • 您使用 PROC EXPORT 到底是做什么的? PROC EXPORT 的结果现在如何包含在电子邮件中?
  • 嘿,很抱歉没有澄清。我目前正在使用 PROC Export 导出报告文件,该文件附加到我发送的电子邮件中。电子邮件正文中是我在原始存储过程中的宏中进行的聚合,它使用宏变量 &email_content 插入到电子邮件正文中。
  • 导出成什么格式?假设第一个导出正在创建可以实际存储另一个选项卡的东西,例如 Excel 工作簿,听起来您所要做的就是添加另一个导出步骤,以将另一个选项卡添加到第一个导出创建的任何内容中。否则,如果您无法向其中添加另一个选项卡,那么您将需要创建另一个文件并将这两个文件附加到电子邮件中。
  • 最终输出为 .xlsx 文件。我知道我可以利用 proc export 来创建额外的工作表。但是,问题更多在于能够在不使用 ODS Excel 的情况下将常规文本附加到电子表格中。因为 proc export 似乎只适用于 sas7bdat 文件,所以我不确定我将如何添加诸如......总销售额:1,000,000 美元......行数:1236.. 等直接进入辅助选项卡Excel 报告。

标签: sas


【解决方案1】:

听起来您正在尝试创建一个数据集,其中包含您当前的摘要数据。您可以查看proc transpose,但是对于您非常简单的情况,我可能会这样做:

data summaryinfo;
    set x.aggre_0;
    summaryinfo = cat('Summary #1:',total 1); output;
    summaryinfo = cat('Summary #2:',total 2); output;
    summaryinfo = cat('Summary #3:',total 3); output;
    keep summaryinfo;
run;

proc export data = summaryinfo;
    outfile = "your-file.xlsx"
    dbms = excel;
    sheet = "Summary Info";
run;

【讨论】:

    猜你喜欢
    • 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
    相关资源
    最近更新 更多