关于本站
人大经济论坛-经管之家:分享大学、考研、论文、会计、留学、数据、经济学、金融学、管理学、统计学、博弈论、统计年鉴、行业分析包括等相关资源。
经管之家是国内活跃的在线教育咨询平台!
获取电子版《CDA一级教材》
完整电子版已上线CDA网校,累计已有10万+在读~ 教材严格按考试大纲编写,适合CDA考生备考,也适合业务及数据分析岗位的从业者提升自我。
TOP热门关键词
/*该sas文件旨在说明如何编写一次完成以后不用任何人手更改(包括更改日期、excel的格式等)的常规报表;如用邮件自动发送程序,则还可省略发送邮件的过程,做到一次编写,无需跟进(前提是程序经过检验完善);可根 ...
免费学术公开课,扫码加入![]() |
- /*该sas文件旨在说明如何编写一次完成以后不用任何人手更改(包括更改日期、excel的格式等)的常规报表;
- 如用邮件自动发送程序,则还可省略发送邮件的过程,做到一次编写,无需跟进(前提是程序经过检验完善);
- 可根据个人情况举一反三使用;
- 本文来自"OUR SAS"群-"统计-小风"
- */
- options noxwait noxsync;
- x '"D:\报表模板.xlsx"'; /* 该文件为固定的报表模板,可以事先调整好单元格格式、字体颜色,事先写好其他不变的内容 */
- data _null_;
- rc=sleep(10); /* sas睡眠10秒,是为了给打开上述文件留时间 */
- run;
- data _null_; /* 此处设定各类时间,比如你要读取的文件是包含时间的,如test2012-05-16,就是用当天的时间、
- sas程序运行的时间去得到这个"2012-05-16";另外一种是你要生成的excel文件是包含时间的,也在这里处理得出 */
- x=put(date()-1,yymmdd10.); /* 比如每日运行这个程序,处理前一日的文件,就是用date()-1 */
- y=substr(x,6,2)||substr(x,9,2)||"b";
- z=compress(input(substr(x,6,2),best8.)||"."||input(substr(x,9,2),best8.));
- call symput("path",y);
- call symput("path2",z);
- run;
- %let log=alla_&path; /* 我要处理的文件名就是 alla_0516b 这种形式 */
- libname result "D:\test";
- data temp1(compress=yes);
- set result.&log; /* 类似这样应用 */
- run;
- /* 中间是你数据处理的过程,省略 */
- filename r1 dde 'excel|[报表模板.xlsx]自定义表名1!r5c1:r60c6' ;/* 对某张表某些单元格进行写入 */
- data _null_;
- set result1;
- file r1 notab linesize=2000; /* DDE默认空格为分隔符,如果一个变量中间有空格将会分开到两个单元格,用notab即可避免,
- linesize赋予一个足够大的值,则过长的变量不会错行 */
- put date '09'x time '09'x source '09'x duration '09'x sql '09'x type;
- run;
- filename r1 dde 'excel|[报表模板.xlsx]自定义表名2!r5c1:r60c6' ; /*继续写入下一张表 */
- data _null_;
- set result2;
- file r1 notab linesize=2000;
- put date '09'x time '09'x source '09'x duration'09'xsql '09'x type;
- run;
- filename r1 dde "excel|system";
- data _null_;
- file r1;
- put '[workbook.activate("自定义表名2")]';/* 激活其中一张表 */
- put '[row.height(0,"A1:A1",false,3)]'; /* 调整行高;类似这样的跟vba比较像 */
- put '[workbook.activate("自定义表名1")]';
- put '[row.height(0,"A1:A1",false,3)]';
- x= compress('[save.as("D:\sql('||&path2||').xlsx")]');/* 存储一个备份到某个路径,文件名为 sql(5.16).xlsx*/
- put x;
- y= compress('[save.as("E:\MailFile\sql('||&path2||').xlsx")]');/* 存储到邮件文件夹,这样由邮件自动发送excel出去 */
- put y;
- put '[quit]';
- run;
- /*整个程序如上,然后txt写如下内容另存为bat文件,在windows-附件-系统工具-任务计划程序里面设置每日凌晨运行这个bat即可:
- D:
- cd: "D:\sas_program\sas\sasfoundation\9.2\"
- sas.exe -sysin "D:\thisprogramname.sas" -altlog "D:\test\log.log"
- */
- /* 上述bat第二行是你sas程序的路径,第三行表示执行的sas程序的路径和名字,然后将sas运行的日志写入到log.log中,
- 以便事后查看日志 */
「经管之家」APP:经管人学习、答疑、交友,就上经管之家!
免流量费下载资料----在经管之家app可以下载论坛上的所有资源,并且不额外收取下载高峰期的论坛币。
涵盖所有经管领域的优秀内容----覆盖经济、管理、金融投资、计量统计、数据分析、国贸、财会等专业的学习宝库,各类资料应有尽有。
来自五湖四海的经管达人----已经有上千万的经管人来到这里,你可以找到任何学科方向、有共同话题的朋友。
经管之家(原人大经济论坛),跨越高校的围墙,带你走进经管知识的新世界。
扫描下方二维码下载并注册APP
免流量费下载资料----在经管之家app可以下载论坛上的所有资源,并且不额外收取下载高峰期的论坛币。
涵盖所有经管领域的优秀内容----覆盖经济、管理、金融投资、计量统计、数据分析、国贸、财会等专业的学习宝库,各类资料应有尽有。
来自五湖四海的经管达人----已经有上千万的经管人来到这里,你可以找到任何学科方向、有共同话题的朋友。
经管之家(原人大经济论坛),跨越高校的围墙,带你走进经管知识的新世界。
扫描下方二维码下载并注册APP
您可能感兴趣的文章
人气文章
本文标题:SAS程序实现日常报表的全自动化
本文链接网址:https://bbs.pinggu.org/jg/ruanjianpeixun_sasruanjianpeixun_1444265_1.html
2.转载的文章仅代表原创作者观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,本站对该文以及其中全部或者部分内容、文字的真实性、完整性、及时性,不作出任何保证或承若;
3.如本站转载稿涉及版权等问题,请作者及时联系本站,我们会及时处理。



