Python 批量生成Word 合同

要使用 Python 批量生成 Word 合同,您可以遵循以下步骤:

1. 整理 Excel 数据

假设您有一个 Excel 文件,其中第一行为字段名称,下面是对应的内容。举个例子,Excel 数据如下:

姓名 地址 电话 日期
张三 北京市某街道 13800138000 2025-01-07
李四 上海市某街道 13900139000 2025-01-08

2. 准备合同模版

您需要一个 Word 合同模板,其中包含需要替换的占位符。假设您的合同模板 (contract_template.docx) 是一个 Word 文件,里面有类似 {``{姓名}}{``{地址}}{``{电话}}{``{日期}} 的占位符。

3. Python 脚本

以下是一个 Python 脚本的示例,使用 pandas 读取 Excel 数据,python-docx 操作 Word 文档:

安装所需的库
bash 复制代码
pip install pandas openpyxl python-docx
Python 脚本
python 复制代码
import pandas as pd
from docx import Document
import os

# 读取 Excel 文件
excel_file = 'contracts.xlsx'  # 替换为你的 Excel 文件路径
df = pd.read_excel(excel_file)

# 合同模版路径
template_path = 'contract_template.docx'  # 替换为你的 Word 模版文件路径

# 输出文件夹
output_dir = 'generated_contracts'
os.makedirs(output_dir, exist_ok=True)

# 函数:根据数据替换模板中的字段
def generate_contract(data_row, template_path, output_path):
    # 读取合同模版
    doc = Document(template_path)
    
    # 遍历文档中的所有段落,替换占位符
    for para in doc.paragraphs:
        for key, value in data_row.items():
            para.text = para.text.replace(f'{{{{ {key} }}}}', str(value))
    
    # 保存生成的合同
    doc.save(output_path)

# 遍历 Excel 数据,并生成合同
for index, row in df.iterrows():
    # 获取每行数据
    data_row = row.to_dict()

    # 合同输出路径
    output_path = os.path.join(output_dir, f'contract_{index + 1}.docx')
    
    # 生成合同
    generate_contract(data_row, template_path, output_path)

    print(f'合同 {index + 1} 已生成: {output_path}')

print("所有合同生成完毕!")
代码解释:
  1. 读取 Excel 数据 :使用 pandas.read_excel() 读取 Excel 文件并转换为 DataFrame,确保 Excel 的第一行是字段名。
  2. 合同模版替换 :使用 python-docx 打开 Word 模板文件,并通过替换文档中各段落的占位符(如 {``{姓名}})来填充数据。
  3. 保存文件 :将修改后的 Word 文件保存到指定的输出目录,每个文件以 contract_{index}.docx 命名。

4. 流程

  • 准备一个包含数据的 Excel 文件,字段名称与合同模板中的占位符相匹配。
  • 编写并运行 Python 脚本,生成每个合同。
  • 输出文件将保存在 generated_contracts 文件夹中。

更多定制化需求,接需求:

signmaker AI Contract Generator 智能定制化合同

相关推荐
p***h64312 小时前
JavaScript图像处理开发
开发语言·javascript·图像处理
2501_9411481513 小时前
高并发搜索引擎Elasticsearch与Solr深度优化在互联网实践分享
java·开发语言·前端
用户23452670098213 小时前
Python实现异步任务队列深度好文
后端·python
夫唯不争,故无尤也13 小时前
PyTorch 的维度变形一站式入门
人工智能·pytorch·python
专家大圣13 小时前
告别局域网束缚!飞牛云 NAS+cpolar 让远程管理更简单
开发语言·网络·内网穿透·cpolar
共享家952713 小时前
QT-界面优化(上)
开发语言·qt
熊猫钓鱼>_>13 小时前
从零开始构建RPG游戏战斗系统:实战心得与技术要点
开发语言·人工智能·经验分享·python·游戏·ai·qoder
FuckPatience13 小时前
C++ 常用类型写法和全称
开发语言·c++
q***R30813 小时前
Kotlin注解处理
android·开发语言·kotlin
BoBoZz1914 小时前
TriangleStrip连续三角带
python·vtk·图形渲染·图形处理