批量制作好多份合同(办公自动化1批量生成聘用合同)
批量制作好多份合同(办公自动化1批量生成聘用合同)打开任一文件可以看到信息已经被替换from docx import Document from openpyxl import load_workbook # 定义关键信息替换函数 def info_replace(doc old_info new_info): for para in doc.paragraphs: para.text = para.text.replace(old_info new_info) # 读取word模板 doc = Document('/Users/baobao/Desktop/写作/人事聘用合同模板.docx') # 读取excel中的详细信息 wb = load_workbook('/Users/baobao/Desktop/写作/聘用人信息.xlsx') ws = wb.
日常工作中常常有这样一种场景,需要批量制作一些主要内容相同,只是部分数据有变化的word文档,比如HR的聘用合同,采购部的采购合同。
如上图所示,文档中【】中的信息需要根据不同的聘用人或者采购方去做相应的修改,具体的修改信息放在Excel中
接下来,就用python操作word和excel批量生成聘用合同,需要的文档主要有两个,一个是word模板,一个是用来存储替换信息的excel。
模块介绍
实现该功能主要用到两个模块:python-docx和openpyxl,前者用来操作word后者用来操作Excel
读取word信息并打印出来
批量生成word的完整代码
from docx import Document
from openpyxl import load_workbook
# 定义关键信息替换函数
def info_replace(doc old_info new_info):
for para in doc.paragraphs:
para.text = para.text.replace(old_info new_info)
# 读取word模板
doc = Document('/Users/baobao/Desktop/写作/人事聘用合同模板.docx')
# 读取excel中的详细信息
wb = load_workbook('/Users/baobao/Desktop/写作/聘用人信息.xlsx')
ws = wb.active
# 利用Excel中的信息替换word模板中的信息,并保持修改后的word文档
for row in range(2 ws.max_row 1):
doc = Document('/Users/baobao/Desktop/写作/人事聘用合同模板.docx')
for col in range(1 ws.max_column 1):
old_info = str(ws.cell(row=1 column=col).value)
new_info = str(ws.cell(row=row column=col).value)
info_replace(doc old_info new_info)
doc_name = str(ws.cell(row=row column=2).value)
doc.save(f'/Users/baobao/Desktop/写作/结果集/{doc_name}聘用合同.docx')
结果
打开任一文件可以看到信息已经被替换
当你有成千上万个文档需要生成时,需要修改的地方只有三个文件路径即可,甚至你可以利用我之前的文章中【如何把Python变成撩妹神器】介绍的内容,将此python代码打包成.exe文件,就像运行软件一样实现word文档的批量生成。