SAS:将数据子集导出到Excel中的单独工作簿选项卡

SAS:将数据子集导出到Excel中的单独工作簿选项卡,sas,export,export-to-excel,Sas,Export,Export To Excel,问题:如何将数据集的子集导出到Excel工作簿的各个选项卡(最好是.xlsx),而无需多次运行PROC export 我的解决方案 该数据集包含15个指标。不幸的是,这些指标没有可以索引的名称。这意味着我不能将导出过程放入一个宏中,该宏在计数器上循环15次并在名称后面附加索引。这些指标(不是真的)像“汽车”、“卡车”、“自行车”、“恐龙”等 我想出的解决方案是这样的: proc export data = data_set (where = (indicato

问题:如何将数据集的子集导出到Excel工作簿的各个选项卡(最好是.xlsx),而无需多次运行
PROC export


我的解决方案

该数据集包含15个指标。不幸的是,这些指标没有可以索引的名称。这意味着我不能将导出过程放入一个宏中,该宏在计数器上循环15次并在名称后面附加索引。这些指标(不是真的)像“汽车”、“卡车”、“自行车”、“恐龙”等

我想出的解决方案是这样的:

proc export data = data_set 
                (where = (indicator = "car"))
            outfile = "c:\workbook.xlsx"
            dbms = xlsx replace;
            sheet = car;
run;

...

proc export data = data_set 
                (where = (indicator = "dinosaur"))
            outfile = "c:\workbook.xlsx"
            dbms = xlsx replace;
            sheet = dinosaur;
run;

但是,这显然效率低下,需要某种自动化。

您可以使用
libname
工具,这是
proc export
在后台通常使用的工具

libname myexcel xlsx "c:\outwhatever\myfile.xlsx";  *can use XLSX if 9.4+ or EXCEL if earlier;
这将为您提供一个常规libname,就像它是SAS libname一样,您可以这样对其进行写入:

data myexcel.sheetname;
  set whatever;
run;
或使用
PROC COPY
或类似工具


还有其他选项(例如使用
OLEDB
或类似工具),但
libname
是最简单的。有关更多详细信息,请参阅。

如果您有SAS 9.4 ODS Excel,它非常简单和漂亮,请将“工作表间隔”选项设置为“按组”,并为工作表名称添加前缀

proc sort data=sashelp.class out=class;
by age;
run;

ods excel file='/folders/myfolders/sample.xlsx' options (sheet_interval='bygroup' sheet_label='Age');

proc print data=class noobs label;
by age;
run;

ods excel close;

你们有什么版本的SAS?如果9.4 ODS Excel可以自动使用,否则使用标记集,但它将创建一个xml而不是xlsx文件。我使用的是SAS 9.4。我不确定我还有哪些其他产品或维护更新。我该怎么查呢?谢谢你的提问,这是我在提问时应该记得提供的信息