按模版批量生成定制合同

提出问题

一个仪器设备采购公司,商品合同采购需要按模版生成的固定的文件,模板是固定的,只是每次需要替换信息,然后打印出来寄给客户。

传统方法

如果手工来做这个事情,准备好数据之后,需要从Excel表格中复制粘贴数据,再到word中去替换,每次至少需要3分钟的时间。假如每天要开100份,则至少要花5个小时。这样就太浪费人力时间了,而且手工编辑word很容易出错。

爽解决

可不可用python写个程序,快速、秒级解决这个问题呢?

结论当然是肯定的!

提前准备好word模板,准备写入word文档的内容,我们使用Python直接读写word模块,通过读取Excel表格中的信息,批量替换内容并生成word文件。秒级完成重复工作,提升办公效率!

代码实现

## 导入包
from docx import Document
import pandas as pd 

## 读入合同信息表
df = pd.read_excel('./合同信息表.xlsx') 

## 将读取到的每一个值都放到文本中去替换对应的值
# 一行行取出数据
for i in range(len(df)):
    
    ## 读取合同模板 Word 文件
    doc = Document('./修改模板.docx')
    # 所有段落
    all_paragraphs = doc.paragraphs
    # 所有表格
    all_tables = doc.tables

    # 一列列取出数据
    for j in df.columns:
        # 将每一个元素都在段落里进行对应替换
        # 遍历每个段落
        for paragraph in all_paragraphs:
            # 遍历段落的最小单元run
            for run in paragraph.runs:
                # 替换
                run_text = run.text.replace(j, str(df.loc[i,j]))
                # 新的内容赋值回原段落
                run.text = run_text
        
        # 将每一个元素都在表格里进行对应替换
        # 遍历表格
        for table in all_tables:
            # 遍历行
            for row in table.rows:
                # 遍历单元格
                for cell in row.cells:
                    # 替换
                    cell_text = cell.text.replace(j, str(df.loc[i,j]))
                    # 新的内容赋值回原表格
                    cell.text = cell_text
    ## 替换完成后的doc生成新的word文件
    doc.save(f"./修改后的合同/{df.loc[i,'xBuyerx']}合同.docx") 

实现效果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值