我想将数据集导出到SAS的Excel文件中,如下所示:
Claim_id State Suffix Policy Amount
125 CA 231 cyt $58,000.00
458 dd 789 ghu $78,961.00
458 lk 586 lk -$56.00
785 ga 712 js -$89.00
它需要有这样的标题: “截至[当前月份名称] [当前年份]。”,例如“截至2017年1月”。
如果金额为负数,则需要显示红色。
答案 0 :(得分:2)
%let today_month = %sysfunc(today(), monname8.);
%let today_year = %sysfunc(today(), year4.);
%put &today_month. &today_year.;
title "As of &today_month. &today_year.";
/* This line goes into your PROC PRINT or PROC REPORT */
var amount / style(column)={tagattr="format: $#,##0.00_);[Red]($#,##0.00)"};
要调整格式,请在Excel中右键单击单元格,转到格式化单元格 - >自定义,创建格式,然后将字符串粘贴到"format: "
部分。
ODS Excel
的示例:data test;
input Claim_id Amount;
datalines;
125 58000
458 78961
458 -56
785 -89
;
run;
%let today_month = %sysfunc(today(), monname8.);
%let today_year = %sysfunc(today(), year4.);
%put &today_month. &today_year.;
ods excel file='output path and file name here.xlsx'
options(embedded_titles="yes");
proc print data=test noobs;
title "As of &today_month. &today_year.";
var claim_id;
var amount
/ style(column)={tagattr="format: $#,##0.00_);[Red]($#,##0.00)"};
run;
ods excel close;
结果:
请注意ODS EXCEL
在9.4M2中是实验性的,并在9.4M3中生产。要使用旧的ods tagsets.excelxp
(XML,但显示为Excel文件),只需将其替换为ods excel
:
ods tagsets.excelxp file='output path and file name here.xlsx'
options(embedded_titles="yes");;
... code here ...
ods tagsets.excelxp close;
来源:
http://blogs.sas.com/content/sasdummy/2014/09/21/ods-excel-and-proc-export-xlsx/ https://support.sas.com/resources/papers/proceedings16/SAS5642-2016.pdf http://support.sas.com/resources/papers/proceedings13/366-2013.pdf
答案 1 :(得分:0)
听起来你应该使用ODS EXCEL
,我认为它与SAS 9.4 TS1M2一起提供。那会让你完全按照你的要求去做。
如果您没有该版本,可以对tagsets.excelxp
执行相同操作,但这不会创建普通的excel文件类型文件;它将是一个xml文件,可能需要进一步处理。