SAS程序实现日常报表的全自动化-经管之家官网!

人大经济论坛-经管之家 收藏本站
您当前的位置> 软件培训>>

SAS软件培训

>>

SAS程序实现日常报表的全自动化

SAS程序实现日常报表的全自动化

发布:落日烟雨轻 | 分类:SAS软件培训

关于本站

人大经济论坛-经管之家:分享大学、考研、论文、会计、留学、数据、经济学、金融学、管理学、统计学、博弈论、统计年鉴、行业分析包括等相关资源。
经管之家是国内活跃的在线教育咨询平台!

获取电子版《CDA一级教材》

完整电子版已上线CDA网校,累计已有10万+在读~ 教材严格按考试大纲编写,适合CDA考生备考,也适合业务及数据分析岗位的从业者提升自我。

完整电子版已上线CDA网校,累计已有10万+在读~ 教材严格按考试大纲编写,适合CDA考生备考,也适合业务及数据分析岗位的从业者提升自我。

/*该sas文件旨在说明如何编写一次完成以后不用任何人手更改(包括更改日期、excel的格式等)的常规报表;如用邮件自动发送程序,则还可省略发送邮件的过程,做到一次编写,无需跟进(前提是程序经过检验完善);可根 ...
免费学术公开课,扫码加入


  1. /*该sas文件旨在说明如何编写一次完成以后不用任何人手更改(包括更改日期、excel的格式等)的常规报表;
  2. 如用邮件自动发送程序,则还可省略发送邮件的过程,做到一次编写,无需跟进(前提是程序经过检验完善);
  3. 可根据个人情况举一反三使用;
  4. 本文来自"OUR SAS"群-"统计-小风"
  5. */

  6. options noxwait noxsync;
  7. x '"D:\报表模板.xlsx"'; /* 该文件为固定的报表模板,可以事先调整好单元格格式、字体颜色,事先写好其他不变的内容 */
  8. data _null_;
  9. rc=sleep(10); /* sas睡眠10秒,是为了给打开上述文件留时间 */
  10. run;

  11. data _null_; /* 此处设定各类时间,比如你要读取的文件是包含时间的,如test2012-05-16,就是用当天的时间、
  12. sas程序运行的时间去得到这个"2012-05-16";另外一种是你要生成的excel文件是包含时间的,也在这里处理得出 */
  13. x=put(date()-1,yymmdd10.); /* 比如每日运行这个程序,处理前一日的文件,就是用date()-1 */
  14. y=substr(x,6,2)||substr(x,9,2)||"b";
  15. z=compress(input(substr(x,6,2),best8.)||"."||input(substr(x,9,2),best8.));
  16. call symput("path",y);
  17. call symput("path2",z);
  18. run;

  19. %let log=alla_&path; /* 我要处理的文件名就是 alla_0516b 这种形式 */

  20. libname result "D:\test";
  21. data temp1(compress=yes);
  22. set result.&log; /* 类似这样应用 */
  23. run;

  24. /* 中间是你数据处理的过程,省略 */

  25. filename r1 dde 'excel|[报表模板.xlsx]自定义表名1!r5c1:r60c6' ;/* 对某张表某些单元格进行写入 */
  26. data _null_;
  27. set result1;
  28. file r1 notab linesize=2000; /* DDE默认空格为分隔符,如果一个变量中间有空格将会分开到两个单元格,用notab即可避免,
  29. linesize赋予一个足够大的值,则过长的变量不会错行 */
  30. put date '09'x time '09'x source '09'x duration '09'x sql '09'x type;
  31. run;

  32. filename r1 dde 'excel|[报表模板.xlsx]自定义表名2!r5c1:r60c6' ; /*继续写入下一张表 */
  33. data _null_;
  34. set result2;
  35. file r1 notab linesize=2000;
  36. put date '09'x time '09'x source '09'x duration'09'xsql '09'x type;
  37. run;

  38. filename r1 dde "excel|system";
  39. data _null_;
  40. file r1;
  41. put '[workbook.activate("自定义表名2")]';/* 激活其中一张表 */
  42. put '[row.height(0,"A1:A1",false,3)]'; /* 调整行高;类似这样的跟vba比较像 */
  43. put '[workbook.activate("自定义表名1")]';
  44. put '[row.height(0,"A1:A1",false,3)]';
  45. x= compress('[save.as("D:\sql('||&path2||').xlsx")]');/* 存储一个备份到某个路径,文件名为 sql(5.16).xlsx*/
  46. put x;
  47. y= compress('[save.as("E:\MailFile\sql('||&path2||').xlsx")]');/* 存储到邮件文件夹,这样由邮件自动发送excel出去 */
  48. put y;
  49. put '[quit]';
  50. run;

  51. /*整个程序如上,然后txt写如下内容另存为bat文件,在windows-附件-系统工具-任务计划程序里面设置每日凌晨运行这个bat即可:
  52. D:
  53. cd: "D:\sas_program\sas\sasfoundation\9.2\"
  54. sas.exe -sysin "D:\thisprogramname.sas" -altlog "D:\test\log.log"
  55. */

  56. /* 上述bat第二行是你sas程序的路径,第三行表示执行的sas程序的路径和名字,然后将sas运行的日志写入到log.log中,
  57. 以便事后查看日志 */
复制代码
「经管之家」APP:经管人学习、答疑、交友,就上经管之家!
免流量费下载资料----在经管之家app可以下载论坛上的所有资源,并且不额外收取下载高峰期的论坛币。
涵盖所有经管领域的优秀内容----覆盖经济、管理、金融投资、计量统计、数据分析、国贸、财会等专业的学习宝库,各类资料应有尽有。
来自五湖四海的经管达人----已经有上千万的经管人来到这里,你可以找到任何学科方向、有共同话题的朋友。
经管之家(原人大经济论坛),跨越高校的围墙,带你走进经管知识的新世界。
扫描下方二维码下载并注册APP
本文关键词:

本文论坛网址:https://bbs.pinggu.org/thread-1444265-1-1.html

人气文章

1.凡人大经济论坛-经管之家转载的文章,均出自其它媒体或其他官网介绍,目的在于传递更多的信息,并不代表本站赞同其观点和其真实性负责;
2.转载的文章仅代表原创作者观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,本站对该文以及其中全部或者部分内容、文字的真实性、完整性、及时性,不作出任何保证或承若;
3.如本站转载稿涉及版权等问题,请作者及时联系本站,我们会及时处理。
数据分析师 人大经济论坛 大学 专业 手机版
联系客服
值班时间:工作日(9:00--18:00)