Python:操作 word 批量生成合同

💖亲爱的技术爱好者们,热烈欢迎来到 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)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Thomas Kant

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值