用docxtpl库实现docx报告自动化输出
对于很多审计人员来说,加班做底稿是常有的事,但最麻烦的不是做底稿,而是修改报告。
一般来说,一份报表对应一份审计报告,如果报表的某个数字改了,那么整张报表的数字都会变化,那么整份报告的所有数字都要重新修改。
当年技术有限,没有办法,只能慢慢改。
现在终于学会了,但却不当审计了。
写了一个小程序,希望可以帮到新人吧。
这是一个比较冷门的Python库,而且库中的函数也不多,才几个,但功能却不错,如果结合Pandas库,可以将Excel表格上的数据自动转化成word的标签。如果说docx库的强大在于生成我们想要的Word文档,那么Docxtpl库的存在就是将这些文档按固定格式输出。
安装方式如下:
pip install docxtpl
安装成功后,不代表马上就能使用,输入代码前需要设置word模板的标签。
什么是Word模板?其实就是一个word文件,只是这个文件有点特别:
Word文档内的双括号就是标签,它是一个变量,可以是张三,也可以是李四。标签只能在同一段落的同一段内使用,不能跨多个段落、表格行、段使用。并且在双括号两边各留下一个空格。
设定好标签之后,再去设置Excel文档的每一列:
每一列的表头都要与Word文档标签的名称要一致。只有这样,Excel中的数据才可以通过标签,将表头下的内容放置在Word中的正确位置。
当Word和Excel都设置好之后,我们再去录入代码:
import pandas as pd
from docxtpl import DocxTemplate
df01=pd.read_excel("导入数据.xlsx") #导入表格,偏码为简体
df02 = df01.to_dict(orient="records") ##数据转化成字典
for i in df02:
tpl = DocxTemplate('内审报告模板03.docx') ##导入Word文档
tpl.render(i) ##将字典替换Word标签
tpl.save(i['公司名称']+'.docx') ##按公司保存Word文档
代码非常简单,正确来说,只有三个函数:
DocxTemplate()函数的功能是导入Word文档,如果不在相同文件夹下,就输入绝对路径。其次.render()函数的功能是将Word标签替换。最后.save()函数就是生成好几个word文档。
如果将Word文档设计得精细一点,将标签设计得再详细点:
那么就会生成一份更详细的报告。
这对于很多因为赶报告而要加班的人士来说,这种的小程序大大节省了时间,只要事前搞好了模板以及数据,就可以一键生成报告。
除了自动生成报告,也可以自动生成工资单。试想一下,如果将工资明细导入到Word文档,运行后将自动生成每个人的工资单。那么会计就不用每月都要拿着剪刀将工资表剪成一条一条,而是直接将各个人的工资单分别发送到每个人的微信号就可以了。
如果是学校的话,也可以自动生成录取通知书之类的。只要做好Excel表,就可以按名单生成各人的录取通知书。
本作品采用《CC 协议》,转载必须注明作者和本文链接
这个直接用word邮件合并就行啊,不需要用到编程
向大佬学习