使用ods tagsets.ExcelXP和body = test.html输出多个工作表时,它没有按预期工作

时间:2015-04-18 16:17:54

标签: excel sas output worksheet sas-ods

我在一个xml类型的Excel电子表格中将几个表输出到几个工作表中。

我遇到的问题是,在我输出的六个工作表中,最后四个也使用了body = test.html,以允许某些样式格式工作(只有在我使用body =时才有效)命令)。然而,当它运行时,前两个工作表输出,最后四个不输出。

例如

ods tagsets.excelxp file='example.xls' options(...sheet_name=sheet1...);

proc report;
run;

ods tagsets.excelxp options(...sheet_name=sheet2...);
proc tabulate;
run;

ods tagsets.excelxp body='test1.html' options(...sheet_name=sheet3...);
proc report;
run;
ods tagsets.excelxp body='test2.html' options(...sheet_name=sheet4...);
proc report;
run;
ods tagsets.excelxp body='test3.html' options(...sheet_name=sheet5...);
proc report;
run;
ods tagsets.excelxp body='test4.html' options(...sheet_name=sheet6...);
proc report;
run;

ods tagsets.excelxp close;

前两个输出正常,但最后四个不是。我已经尝试为每个ods tagsets.excelxp行放置 body ='test.html',但它不起作用,只输出第一张表。我不能跳过ods tagsets.excelxp行,因为我需要为每个工作表设置不同的选项...有没有办法在同一个电子表格中输出这些?我不被允许使用VBA或任何手动干预。

1 个答案:

答案 0 :(得分:0)

您无法将tagsets.ExcelXP输出到HTML文件,并希望它能够像XML一样工作。

您需要将前两个proc tabulate输出到ExcelXP标记集目标,关闭标记集,为每个HTML文件打开一个新的HTML目标,运行proc report,然后关闭HTML。

ods tagsets.excelxp file='example.xls' options(...sheet_name=sheet1...);
proc report;
run;

ods tagsets.excelxp options(...sheet_name=sheet2...);
proc tabulate;
run;
ods tagsets.excelxp close;


ods html body='test1.html' ;
proc report;
run;
ods html close ;

ods html body='test1.html' ;
proc report;
run;
ods html close ;

ods html body='test2.html' ;
proc report;
run;
ods html close ;

ods html body='test4.html' ;
proc report;
run;
ods html close ;