前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python是否如广告说的能一秒制作1000份合同?word与之相比如何?

python是否如广告说的能一秒制作1000份合同?word与之相比如何?

作者头像
Python与Excel之交
发布2021-08-05 15:31:56
8630
发布2021-08-05 15:31:56
举报
文章被收录于专栏:Python与Excel之交Python与Excel之交

Hi~ 大家好!

不知道大家有没有经常制作通知书、邀请函、合同等一类文书,重复性操作强,这些文书如果一个一个的制作,那人岂不成了重复操作的机器人了。在Word文档中制作这类文书时,为了减少重复性操作、以及提高效率,可以使用邮件合并功能,而Python也可以制作这类文书,我们来看下二者的具体操作。

材料

一份合同信息表:

一份合同模板:

Word

word批量制作合同用的是自带的邮件合并功能,可能大家都用过;他并不难,多做几遍基本会了,下面我们开始讲解。

点击上方导航栏中的【邮件】 点击开始【邮件合并下拉箭头】 点击【邮件合并分步向导】

界面右边出现【邮件合并】窗口,直接点击【下一步 开始文档】

第二步是选择模板,本文的模板是当前文档,所以选择【使用当前文档】,点击【下一步 选取收件人】

第三步是选择【数据集】,就是需要插入模板中的数据,本文直接选择【使用现有列表】,接着点击【浏览】,选择【数据集】所在的文件,点击【打开】。

在弹出的【选择表格】窗口中,选择数据集所在的工作表。

在弹出的【邮件合并收件人】窗口中,可以筛选出需要或者不需要的数据,然后点击【确定】。

接着在相应的位置上【插入合并域】

插入完成后,可以【预览结果】,看是否正确。

最后点击【完成并合并下拉箭头】,这里有三个选择,可以编辑成单个文档,也可以直接打印或者发送到对方邮件中。一般邀请函之类的是直接发送到对方的邮件中的,合同会进行打印,看个人需求。

点击任意一个选择,会弹出【合并到新文档】、【合并到打印机】以及【合并到电子邮件】窗口:

我们的需求是弄成文档出来,所以直接点击【编辑单个文档】,然后点击【确定】就可以了!但生成的数据是全都保存在一个文档上的,并不是一个一个的word文档。

Python

python制作合同需要用到docxtpl库,直接用pip命令进行安装:

代码语言:javascript
复制
pip intsall docxtpl 

docxtpl库里面有一个模板模块:DocxTemplate,人如其名,它就是用来操作word相关的模板文档。

导入需要的库:

代码语言:javascript
复制
from docxtpl import DocxTemplate
import pandas as pd
import os

使用DocxTemplate他是用一定的要求的,需要在word模板中加入对应的占位符,我这里直接使用excel的列标题;另外需要注意的是:占位符需要添加两个大括号!

创建一个文件存储生成的word文档:

代码语言:javascript
复制
if not os.path.exists(r'D:\合同'):
    os.mkdir(r'D:\合同')

导入合同信息数据:

代码语言:javascript
复制
df = pd.read_excel(r'D:\合同信息.xlsx')

通过循环取出合同信息表中的数据, 建立键值对,这里的键便是模板中的占位符,docxtpl通过键值对的方式,把值赋予给模板中对应的键。

代码语言:javascript
复制
for name, startDate, endDate, post, wage in zip(df['name'], df['startDate'], df['endDate'], df['post'], df['wage']):
 # 建立键值对
    context = {
        "name": name,
        "startDate": startDate,
        "endDate": endDate,
        "post": post,
        "wage": wage
    }
 
 # 导入模板  DocxTemplate 模板的意思
    docx = DocxTemplate('劳动合同.docx')
   # 把键值对所对应的值赋予给键 render 赋予的意思
    docx.render(context)
    docx.save(r"./合同/{}范本.docx".format(name))

结果展示:

运行时间,加入时间获取,试了几次,这是最快的,就算我电脑卡,可这才14份合同,一秒1000份合同,夸张了哈:

结语

python与word二者相比各有各的好,word面向大众,普遍性较强;python能节省时间,运行速度相比word还是很快的,因为word一次性新建那么多内容,挺卡的。就是python广告的打的有点夸张了哈,加了线程都没方法这么快!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-06-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python与Excel之交 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 材料
  • Word
  • Python
  • 结语
相关产品与服务
文件存储
文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档