原文地址以及视频演示成果以及代码获取,请点击下方
超链接在这里!!!!
视频演示成果
前言
有个小姐姐在后盾询问我,最近企业有一个流动,有一个几百人的表单,还有一份邀请函模板文档,最近不小心刷到了我。上图!
尽管可能没听懂你在说什么,你也不给我复制粘贴的内容,如果我没猜错的话。应该是这样的:
将右侧 ***
内容替换成左侧的 单位+姓名
或者是 姓名
无题
不晓得取什么题目好,就这样,临时就定性为:用Python批量生成word版邀请函
日常水一下:
模块
openpyxl
中的load_workbook
办法 .docx
(在这里卖个关子,想看残缺的请点击超链接)
下载.
pip install openpyxl
获取受邀人的信息
咱们首先导入openpyxl
模块中的load_workbook
模块。
from openpyxl import load_workbook
咱们应用load_workbook(path)
读取文件,并存在变量wb
外面。
wb=load_workbook('data/name_list.xlsx')ws=wb['name']
接下来咱们须要选取咱们所须要的“Sheet”,也就是名字叫"name"的那张表
ws=wb['name']
而后定义一个空列表names
来存储受邀人单位和名字信息。随后咱们遍历工作表,将所有信息提取进去存入列表names
,因为工作表第一行是题目,所以咱们从第2行开始,最大一行+1完结range(2,ws.max_row+1)
。
names=[]for row in range(2,ws.max_row+1): company=ws["A"+str(row)].value name=ws["B"+str(row)].value names.append(f" {company} {name} ")
以上步骤实现后,咱们就能够开始批量生成邀请函了。首先导入解决word的库
import docx
docx.Document('data/邀请函.docx')
为固定写法,括号内填写邀请函模板的门路及文件名。doc
可了解为就是这个名为“邀请函”word文件。而后遍历names
列表,将外面的信息一一写入word文件的第二段的第三个run,即doc.paragraphs[1].runs[2].text=name
,最初,用save
保留即可
doc=docx.Document('data/邀请函.docx')for run in doc.paragraphs[1].runs: for name in names: run.text = run.text.replace('****', name) doc.save(f'data/邀请函_{name}.docx')