在日常工作过程中,有部分项目的客户要求周期性输出word版本的报告来汇报指标。对于这种重复性极高且拥有固定格式的报告,就可以使用Python来生成,节省时间,解放双手。
在本人完成的自动化报告中,涵盖以下几种场景:插入图片;插入表格;插入描述;对特定字段设置格式。同时对这些报告进行一些诸如字体颜色,加粗,表格格式,图片位置等格式方面的调优,踩了很多坑后,总结出了一套自己的做法,分享给大家。
1. 准备工作
1.1 了解 python-docx
站内有大量python-docx的介绍文档,极其详尽,在基本了解使用方法后即可从零构建一个word文档。本文章中主要是基于自己设置的现有模板,通过替换关键字的方式实现生成一个固定格式的报告,大致需要了解的概念:
Document: Word 文档本身。
Paragraph: 段落,可以理解为每打一个回车,就会生成一个段落。
Run:一个段落之中可能存在多个Run,这些Run之间有格式差异,如字体,大小,颜色等。
Style:这个就是Style:
1.2 了解你的报告,构建模板
在了解客户需求或已经有工程师反复输出过某份报告时,评估其中重复的部分,如果有必要自动化来节省时间的话,就去创建一个模板,保留主要的报告格式,利用关键字去替换报告中的关键部分,例如报告中重复出现的指标趋势图,使用关键字 [KPI_UserNum_Trend_Chart] 作为锚点,后续可利用代码来锁定位置,插入图片。
例:
替换前:
替换后:
同样的方式为固定位置的表格,文字建立关键字,构建一份模板文档,后续利用代码来锁定位置,替换元素,来达到生成报告的目的。
2. 插入描述
2.1 插入文字
在插入描述的方法中,主要使用了段落的概念。