💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在优快云上与你们相遇~💖
本博客的精华专栏:
【自动化测试】 【测试经验】 【人工智能】 【Python】
Python:操作 Word 批量生成合同
在人事、财务、行政等领域,批量生成标准化合同 是常见的重复性工作。使用 Python + Word 模板,可以将这项任务完全自动化 —— 提高效率、减少错误、轻松应对大批量生成需求。
本文将带你一步步实现:通过 Word 模板 + 占位符 + 数据源,批量生成 Word 合同并支持导出 PDF、读取 Excel、异常处理与配置管理。
📝 一、项目准备工作
安装依赖
pip install python-docx tqdm pandas docx2pdf
python-docx
:操作 Word 文件pandas
:读取 Excel 数据tqdm
:进度条美化docx2pdf
:导出 PDF(仅限 Windows / macOS)
合同模板设计
在 Word 模板中预设如下格式:
尊敬的{
{name}}:
我们诚挚地通知您,您已被录用为{
{position}}。薪资为{
{salary}}元/月,入职时间为{
{start_date}}。
📌 **建议:**使用 {
{字段名}}
格式的占位符,保持全文件一致。
📂 二、替换正文中的占位符(保持格式)
直接替换段落 .text
会破坏字体样式,推荐替换 Run
元素中出现的占位符:
import re
def replace_placeholders(doc, replacements):
pattern = re.compile(r"\{\{(\w+)\}\}")
for paragraph in doc.paragraphs:
for run in paragraph.runs:
for match in re.finditer(pattern, run.text):
key = match.group(1)
if key in replacements:
run.text = run.text.replace(match.group(0)