wps python 自动化_Python实现合同文档自动化生成

0. 引言

前两天整理了一篇使用Word中的邮件合并功能实现使用Excel数据源填入Word指定位置,从而批量生成相似文档的功能,实际上是在为今天的这篇文章做铺垫。这次我打算实现的功能是通过Python来批量将Excel数据填入Word中,针对的场景是于客户签订合同或是制作基于模版的公司章程或股东会决议。

完成这个操作需要用到的是Python当中一个叫做docx-mailmerge的包,这个包的作用是解析MS Word docx文件,并且找到合并字段并且用你想要的任何值去填充他们。其实,这个“mailmerge”可以是一个有用的模板系统,可以用于更复杂的解决方案,而不仅仅是填充文档中的名称和地址。v2-0e92ba7c247b33e13cc24a685afc90c1.jpeg自动化效果https://www.zhihu.com/video/1201516470485991424

目前已经可以实现多个文档同时生成(评论区的朋友太棒啦),若有其他问题期待大家留言交流

1. 整体思路

我的大题思路是:制作好模版和脚本—将收集表发给客户收集信息—运行脚本生成文档—打印签字并存档

需要的工具:Python3及以上版本、Office(WPS理论上可以,暂时未测试)、表单工具(腾讯文档或番茄表单)

2. 模版和表单处理

这里我以网上一个通用合同模版作为示范,先根据内容插入所需要的域,尽量以英文命名。涉及的数据有甲方的名称、代表、地址、电话、日期,所以域和表单的内容都应按照这几个关键词来设置。(这里以Mac的Office为例,Win可能有所区别)

域的设置;光标停在指定位置—插入—域—邮件合并—MergeField—键入名称

表单部分:代码是按照列来填入,所以名称不会影响填入,表单项目选择对应的中文名即可,同时为了防止漏项导致填错,可以将所有项目设置为必填。

3. 程序编写

再说代码之前,先说一下需要提前导入的模块,分别为docx-mailmerge以及xlrd库,所以因先打开Win的命令提示符和Mac的终端,分别输入

pip3 install docx-mailmerge

pip3 install xlrd

注意这里是在系统终端中输入,而非IDLE中(很多初学者比如我会犯的错误),导入下载会自动运行,已安装效果如下:

使用IDLE这时就可以直接使用了,如果使用的是Pycharm,则需要在设置里导入相关的模块。

代码部分:

import xlrd # 引入Excel读取模块

from mailmerge import MailMerge # 引用邮件处理模块

datafile_path = '/Users/smilence/Desktop/合同Test(收集结果).xlsx' # 表格位置

data = xlrd.open_workbook(datafile_path) # 获取数据

table = data.sheet_by_name('合同Test') # 这里的表名要注意

nrows = table.nrows

template = '/Users/smilence/Desktop/合同模版.docx' # 模版位置

for i in range(nrows): # 循环逐行打印

if i > 0: # 排除0项无用数据

document = MailMerge(template)

document.merge(

PartyA=table.row_values(i)[2], # 第三列到域1

Affair=table.row_values(i)[3], # 第四列到域2

Name=table.row_values(i)[4], # 第五列到域3

Address=table.row_values(i)[5], # 第六列到域4

Tel=table.row_values(i)[6], # 第七列到域5

Date=table.row_values(i)[7] # 第八列到域6

)

wordname = table.row_values(i)[2] + '合同.docx' # 甲方作为文件名

document.write(wordname) # 创建新文件

代码已经更新过了,我在代码后做了注释,需要修改的地方主要在文件的路径和需要填入的内容上

4. 数据获取(可以一次多条记录)

将收集表发给需要填写的人,填写完后汇总成表格,并下载成xlsx格式(步骤可以参考上一篇文章)

5. 文档生成

若代码部分未使用绝对路径,则应当保证模版、表格、脚本处于同一路径下,直接运行或使用IDLE运行即可。

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这个Python自动化办公源码是一个功能强大的工具,它可以根据Excel中的数据批量生成Word文档。通过使用Python编程语言和相关的库,该工具能够实现自动化处理和生成文档,提高工作效率并减少人工操作的繁琐性。首先,该源码使用了Python的pandas库来读取和处理Excel文件中的数据。通过读取Excel文件,它可以获取到每一行数据,并将其存储在DataFrame中。这使得我们可以轻松地对数据进行筛选、排序和转换等操作。接下来,该源码使用了python-docx库来创建和编辑Word文档。通过使用该库,我们可以创建新的Word文档,并在其中插入文本、表格、图片等内容。根据Excel中的数据,我们可以动态地生成Word文档的内容,例如根据每一行数据生成一个表格或段落。此外,该源码还提供了批量生成Word文档的功能。通过循环遍历Excel中的每一行数据,我们可以为每一行数据生成一个单独的Word文档。这对于需要批量生成报告、合同或其他文档的场景非常有用。最后,该源码将生成的Word文档打包成一个zip文件,方便用户进行批量下载和分享。通过使用Python的zipfile库,我们可以将多个Word文档压缩成一个zip文件,并提供下载链接或保存到本地。总之,这个Python自动化办公源码是一个强大的工具,可以帮助用户根据Excel中的数据批量生成Word文档。它具有灵活的数据读取和处理能力,可以自定义文档生成方式,并且支持批量生成和打包下载。无论是办公人员还是开发者,都可以从中受益,提高工作效率和数据处理能力。重新回答||
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值