sas导出带有多个表格的rtf文本
在构建rtf、pdf等文件时主要用到的就是ODS(output delivery system),即输出传输系统,ODS通过各种挑选或剔除将数据集按照不同的形式输出到不同的平台,可以输出你所定义表的任何类型的数据和布局。因为目前只学习到了rtf文本的输出,这里只介绍rtf文本的输出程序;直接上代码:*本代码适用于已经统计好表格只差导出的rtf;*首先定义一下options语句,nofmterr是因
·
在构建rtf、pdf等文件时主要用到的就是ODS(output delivery system),即输出传输系统,ODS通过各种挑选或剔除将数据集按照不同的形式输出到不同的平台,可以输出你所定义表的任何类型的数据和布局。
因为目前只学习到了rtf文本的输出,这里只介绍rtf文本的输出程序;
直接上代码:
*本代码适用于已经统计好表格只差导出的rtf;
*首先定义一下options语句,nofmterr是因为避免因为数据的格式问题报错,compress=yes压缩数据集的大小,nodate不在页面上输出日期,date就是添加日期,noquotelenmax不在日志中发送关于字符串最大长度的信息,nonumber不显示页码;
options nofmterr compress=yes nodate noquotelenmax nonumber;
*下面设置封面;
data text;
text="^{style [fontweight=bold fontsize=18pt] 2022年高三全部班级成绩汇总} /*bold
字体加粗*/
^{newline 2} /*设置空白行*/
^{style [fontweight=bold fontsize=16pt] 某某中学}
^{newline 2}
^{style [fontsize=14pt] 2022年4月6日}";
run;
option center;*位置在正中间;
ODS ESCAPECHAR="^";*表示^为触发条件,只要碰到这个符号就会进行{}中要求的格式设置;
ods listing close;*因为listing是在默认情况下是打开的,所以创建rtf文件时需要将其关闭;
*创建rtf文件;
/*bodytitle是下边设定的标题都是在文本中,如果不添加则会显示在页眉中;startpage=yes/no代表了每个表是否要分页;*/
ods rtf file="c:\2022年高三全部班级成绩汇总.rtf" bodytitle startpage=yes
style=journal3; *xxx.rtf是所创建的rtf文本的具体位置,journal3是sas中自带的表格格式三线表;
*设置标题;
title;
title1 j=l h=10pt " ";*一般表格输出的时候页面最上面需要空一行,j=l代表向左对齐;
*设置表格;
options orientation=portrait;*输出方式是横向还是竖向,默认是竖向,横向是(LANDSCAPE);
ods rtf;
title2 bold font="宋体" j=l h=13pt "1-5班成绩";
title3 bold font="宋体" j=l h=13pt "1. 1班成绩";
title4 h=12pt " ";*预留空白行;
title5 font="等线" j=c h=10.5pt "表1 1班成绩";
footnote1 j=c h=10pt "{pageof}";*j=c:justification=center页面下边脚注位置是中间,pageof是指一共有几页而这是第几页1 of 7;
ods proclabel="表1 1班成绩";
proc report data=table1 nowd; *table1是你之前创建的数据集;
/*nowd:nowindows,从SAS9.4版本开始,nowindows已经是默认选项,可以忽略,在之前版本如果没有则会打开交互式报表窗口;*/
column name score order;*选择用到的列;
*设置格式;
define name / width=45 "姓名" style=[width=50% font_face="宋体" font_size=10.5pt] ;
define score / width=45 "成绩" center style=[width=10% font_face="宋体" font_size=10.5pt] ;
define order / width=45 "排名" center style=[width=10% font_face="宋体" font_size=10.5pt];
run;
title2;
title3;
title4;
title5;
title1;
title2;
ods rtf close;
输出的结果是这样显示的:
更多推荐
已为社区贡献1条内容
所有评论(0)