高效办公:Python批量生成/修改Word文档
一、场景痛点
职场中经常需要批量制作劳动合同、入职通知书、月度报告、客户回执单,文档格式统一,仅姓名、日期、金额等少量内容不同。手动复制粘贴极易出错,本文使用python-docx库,实现Word文档全自动批量生成、内容替换、格式调整。
二、环境安装
pip install python-docx
三、四大核心实战场景
1. 新建Word文档并写入内容、设置格式
from docx import Document
from docx.shared import Pt
from docx.oxml.ns import qn# 新建文档
doc = Document()# 设置正文字体(适配中文)
def set_font(paragraph, text):run = paragraph.add_run(text)run.font.size = Pt(12)run.font.name = "宋体"run._element.rPr.rFonts.set(qn("w:eastAsia"), "宋体")# 添加标题
title = doc.add_heading("2026年月度工作汇报", 0)
# 添加正文段落
p1 = doc.add_paragraph()
set_font(p1, "本月严格完成各项工作任务,高效推进项目进度,现将本月工作情况汇报如下:")p2 = doc.add_paragraph()
set_font(p2, "一、本月完成工作:完成数据统计、文件归档、客户对接等核心工作,工作效率稳步提升。")# 保存文档
doc.save("月度工作汇报.docx")
print("Word文档新建完成!")
2. 批量替换Word指定内容(模板文档复用)
核心场景:固定模板批量替换姓名、日期、部门、金额
from docx import Documentdef replace_word(old_path, new_path, replace_dict):doc = Document(old_path)# 遍历段落替换内容for paragraph in doc.paragraphs:for key, value in replace_dict.items():if key in paragraph.text:paragraph.text = paragraph.text.replace(key, value)doc.save(new_path)print(f"{new_path} 生成完成!")# 替换规则:模板中用占位符标记
replace_data = {"【姓名】": "张三","【部门】": "技术部","【日期】": "2026-07-20","【薪资】": "8500元"
}# 批量生成个人入职通知书
replace_word("入职通知书模板.docx", "张三入职通知书.docx", replace_data)
3. 批量生成多份个性化Word文档
# 批量员工信息
staff_list = [{"name":"张三", "dept":"技术部", "salary":"8500", "date":"2026-07-20"},{"name":"李四", "dept":"市场部", "salary":"7200", "date":"2026-07-20"},{"name":"王五", "dept":"人事部", "salary":"6800", "date":"2026-07-20"}
]# 循环批量生成文档
for staff in staff_list:data = {"【姓名】": staff["name"],"【部门】": staff["dept"],"【薪资】": staff["salary"],"【日期】": staff["date"]}file_name = f"{staff['name']}_入职通知书.docx"replace_word("入职通知书模板.docx", file_name, data)
4. 读取Word文档文本内容
from docx import Documentdef read_word(file_path):doc = Document(file_path)full_text = ""# 读取所有段落文本for paragraph in doc.paragraphs:full_text += paragraph.text + "\n"return full_text# 调用读取文档内容
text = read_word("张三入职通知书.docx")
print(text)
四、避坑要点
1、python-docx仅支持docx格式,不支持老版doc格式;
2、表格内文字替换需要单独遍历表格单元格;
3、批量生成文档时,建议统一模板格式,避免排版错乱。
下篇预告
下一篇讲解Python自动发送邮件,实现报表、文档自动定时推送。
标签:Python、Word自动化、办公效率、批量处理、原创