乐于分享
好东西不私藏

批量生成个性化文档,100份合同几秒钟搞定,再也不用一个个手动改了

批量生成个性化文档,100份合同几秒钟搞定,再也不用一个个手动改了

发一批员工合同,一个一个改姓名、改部门、改日期、改职位……改一份要2分钟,100份要200分钟。三个多小时,全在干复制粘贴的活。

更崩溃的是——改到第87份的时候,日期填错了。全部重来。

做HR的、做行政的、做管理的,谁没经历过这种绝望?每次发一批文件,半天就搭进去了。

我写了25行代码,做了一个事:Excel里放数据,Word里做模板,一键批量生成个性化文档。

原来:手动改合同 → 改100份 → 三小时 → 还容易出错现在:Excel整理好数据 → 运行脚本 → 几秒钟搞定 → 100%正确

效果预览

数据表格:

姓名
部门
职位
入职日期
张伟
技术部
工程师
2023-01-15
李娜
市场部
经理
2023-03-20

Word模板(含变量占位符):

text

{{标题}}姓名:{{姓名}}部门:{{部门}}职位:{{职位}}入职日期:{{入职日期}}
生成结果:
文件名
内容
张伟.docx
姓名张伟、部门技术部、职位工程师、入职日期2023-01-15
李娜.docx
姓名李娜、部门市场部、职位经理、入职日期2023-03-20

核心代码(精简版)

from docx import Documentimport pandas as pd# 读取数据df = pd.read_excel("员工数据.xlsx")# 加载模板doc = Document("模板.docx")for idx, row in df.iterrows():    # 替换占位符    for para in doc.paragraphs:        if '{{姓名}}' in para.text:            para.text = para.text.replace('{{姓名}}', row['姓名'])        if '{{部门}}' in para.text:            para.text = para.text.replace('{{部门}}', row['部门'])    doc.save(f"{row['姓名']}.docx")

怎么用

  1. pip install pandas openpyxl python-docx

  2. 先创建模板,把 {{变量名}} 作为占位符

  3. 准备Excel数据(列名与模板变量对应)

  4. 复制完整代码保存为 .py

  5. 运行,选择数据文件和模板文件

  6. 查看「生成文档」文件夹

python-docx 是Python中专门用于操作Word文档的核心库,支持创建、编辑、格式控制等完整功能

应用场景

场景
数据列
模板变量
员工合同
姓名、部门、职位、日期
姓名、部门、职位、日期
录取通知书
姓名、学校、专业
姓名、学校、专业
工资条
姓名、部门、基本工资、奖金
姓名、部门、基本工资、奖金
会议通知
姓名、时间、地点、主题
姓名、时间、地点、主题

无论哪种场景,原理都一样:数据+模板=批量文档。Excel存数据,Word做模板,代码负责填充