原文地址以及視頻演示效果以及代碼獲取,請點擊下方
視頻演示效果
前言
有個小姐姐在後臺詢問我,最近企業有一個活動,有一個幾百人的表單,還有一份邀請函模板文檔,最近不小心刷到了我。上圖!
雖然可能沒聽懂你在說什麼,你也不給我複製粘貼的內容,如果我沒猜錯的話。應該是這樣的:
將右側 ***
內容替換成左側的 單位+姓名
或者是 姓名
無題
不知道取什麼標題好,就這樣,暫時就定性爲:用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')