从事数据分析岗,日常工作中一块重要内容就是发送报告。而搭建自动化报表体系,则是最理想的情况了,替代了周期性的手工劳动,能实现工作量质的提升。本人使用分析工具是SAS,简要提炼了自动报表的实现步骤,能实现自动化:SAS脚本运行+Excel刷新+邮件发送。

1、首先,使用SAS,运行生成原始access文件

第一步,当然是要手工做出来报表的主体部分了,我使用SAS完成数据库的取数和处理输出,由于我使用数据较大,一般导出的是Microsoft Access文件。

2、其次,编辑好透视表版Excel

处理好了数据并导出后,接下来就用Excel,插入透视表,链接所导出的access文件,借助Excel格式上和透视表计算公式的灵活性,制作出更多样和好看的报表。至此,初步报告完成。但是为了实现自动化,需要多做两步:

① 取消勾选透视表中的:允许后台刷新;

96af3e2813ef75d2e97639c35c33d47b.png

② 编写VBA的一个主过程,加上以下功能:

数据全部刷新;ThisWorkbook.RefreshAll

加上另存为语句,本Excel另存为新文件。

另存的VBA代码如下:

ActiveWorkbook.Saved = True
ChDir <此处是路径>
ActiveWorkbook.SaveAs Filename:=<此处是文件名> _
 , FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False

3、编写Python脚本,调用VBA中的主过程。

注意:Excel数据全部刷新、生成新的Excel文件,都在VBA所在的主程序中完成。

4、编写python脚本,发送邮件。

5、编写批处理bat文件,按逻辑顺序一一调用操作。

使用批处理文件(.dat),汇总操作:运行SAS脚本->调用python刷新Excel->调用python发送邮件。最后双击dat文件,即可一步到位。

Logo

一站式 AI 云服务平台

更多推荐