Python将Excel数据插入Word模板生成详细内容文档

最近在实际工作中遇到的一个情况是,每个月固定时间要报送一批文档,文档的内容相似,有固定的模板,我这么懒的人肯定要想一个一劳永逸的办法。下面把搜索发现的情况记录一下,以备以后需要。

Python有个叫做docx-mailmerge的包,它的作用简单可以理解成替换指定内容,更复杂的工作内容还没有涉及,以后遇到了再补充。

如何安装?


pip install docx-mailmerge

怎么在word中设置域,既数据需要填充的地方?

单位和家中的word存在一定的版本差异,为了统一性,以WPS为例,如图所示

image

选择邮件合并,在域代码位置输入想要设置的变量名称

image
image

在Excel表中写出相应的数据,name只是为了和word中域的名字相同,方便对照,实际第一行的数据没有意义

image

import xlrd #引入excel读取模块
import xlwt #引入excel写入模块
from mailmerge import MailMerge #引用邮件处理模块
datafile_path = '你的数据文件.xls'
data = xlrd.open_workbook(datafile_path)  #获取数据
table = data.sheet_by_name('Sheet1')
nrows = table.nrows
template = '你的模板文件.docx'
document = MailMerge(template)
for i in range(nrows): #循环逐行打印
  if i > 0: #排除0项无用数据
    document.merge(
      name=table.row_values(i)[1]
    )
    wordname= table.row_values(i)[1]+'.docx'
    document.write(wordname) #创建新文件

这样Excel表中有多少项数据,就会新创建多少个文档~

Python 让生活更轻松~

PS:主要特别注意的是,文件的后缀一定要是docx,不是先另存为转化。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 关于Mongodb的全面总结 MongoDB的内部构造《MongoDB The Definitive Guide》...
    中v中阅读 32,241评论 2 89
  • 01 过完端午节,陈美珍50岁。这事儿她没跟人说,在农村,生日是小孩子的专利。长达成人的,上了年纪的,都没有生日。...
    狷狂三斧阅读 1,161评论 7 17
  • Git介绍 本文根据廖老师的Git教程归纳 Git命令 Git配置 git config命令的--global参数...
    Blue_hr阅读 281评论 0 0
  • 做一名软件开发的程序,像比尔.盖茨一样,创建自己软件帝国。这是多少青年的梦想,有多少计算机专业的学生,希望自己也能...
    编程那些事阅读 250评论 0 0
  • 盛年的岁月 要看想看的风景 走想走的路 爱想爱的人 别待到双鬓白发生 只有悔字伴一场 我要走很远的路去看你 我要...
    代号1743阅读 382评论 0 5

友情链接更多精彩内容