假设我有2个SAS数据集:test1.sas& Test2.sas。现在我想将这两个数据集导出到excel中,在excel文件中,Sheet1将包含test1.sas数据&在Sheet2中将有test2.sas数据。
怎么做?
答案 0 :(得分:3)
从this paper开始。 This和this也是很好的参考。
使用ODS,您可以使用报告过程(例如,Proc PRINT和REPORT)将数据输出到XML。您不仅可以创建多表输出,还可以设置日期格式,设置自动过滤器和放置标题。
答案 1 :(得分:1)
@ CarolinaJay65的答案中的ODS方法非常灵活,但如果您只想要原始导出,它们可能会有点过分。
一个更简单的选项,如果在SAS安装中可用,则使用excel libname引擎。这允许您将excel工作簿用作sas库,库中的每个数据集占用工作簿中的一个工作表。
http://www.wuss.org/proceedings09/09WUSSProceedings/papers/app/APP-Benjamin.pdf
如果您还想自动化大量格式化或生成更多输出(例如图表),则使用ODS的另一种方法是创建VBA宏,将其保存在模板工作簿中,并让SAS调用该宏来运行通过DDE命令输出:
http://www.lexjansen.com/pharmasug/2005/coderscorner/cc21.pdf
这允许您使用excel的宏录制器捕获您想要自动执行的操作,而不必通过ODS / DDE计算如何生成等效输出。
答案 2 :(得分:0)
如果您不想自动化,并且使用的是Base SAS IDE,则只需右键单击SAS Explorer窗口中的数据集,然后选择View in Excel
。
答案 3 :(得分:0)
我想说最简单的导出到excel的方法(取决于你的SAS版本)是使用PROC EXPORT并指定excel作为你的dbms。您可以指定要更新的同一文件,但为您调用的每个proc导出指定不同的选项卡。
所以在两个单独的标签上有两个数据集的示例:
proc export data=test1 dbms=excel
replace outfile ="C:\Your_file_path\your_file.xls";
sheet = sheet1;
run;
proc export data=test2 dbms=excel
replace outfile ="C:\Your_file_path\your_file.xls";
sheet = sheet2;
run;
答案 4 :(得分:0)
如果您需要在不触摸Excel文档的情况下格式化输出(我在一家银行部门工作,那里的输出是只读的),则可以使用XML来做到这一点。