python excel word模板_Python将Excel数据插入Word模板生成详细内容文档

使用Python的docx-mailmerge包,通过设定Word模板中的域并结合Excel数据,实现批量生成详细内容文档。步骤包括安装docx-mailmerge,设置Word域,准备Excel数据,读取数据并应用到模板,最后生成多个docx文档。
摘要由CSDN通过智能技术生成

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

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

如何安装?

pip install docx-mailmerge

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

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

aae9ea173d5d?from=singlemessage

image

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

aae9ea173d5d?from=singlemessage

image

aae9ea173d5d?from=singlemessage

image

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

aae9ea173d5d?from=singlemessage

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,不是先另存为转化。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值