辦公自動化1——批量生成聘用合同

我是智能取經人 2024-02-13 07:07:20

日常工作中常常有這樣一種場景,需要批量制作一些主要內容相同,只是部分數據有變化的word文檔,比如HR的聘用合同,采購部的采購合同。

如上圖所示,文檔中【】中的信息需要根據不同的聘用人或者采購方去做相應的修改,具體的修改信息放在Excel中

接下來,就用python操作word和excel批量生成聘用合同,需要的文檔主要有兩個,一個是word模板,一個是用來存儲替換信息的excel。

模塊介紹

實現該功能主要用到兩個模塊:python-docx和openpyxl,前者用來操作word後者用來操作Excel

讀取word信息並打印出來

批量生成word的完整代碼

from docx import Documentfrom openpyxl import load_workbook# 定義關鍵信息替換函數def info_replace(doc,old_info,new_info): for para in doc.paragraphs: para.text = para.text.replace(old_info,new_info) # 讀取word模板doc = Document('/Users/baobao/Desktop/寫作/人事聘用合同模板.docx')# 讀取excel中的詳細信息wb = load_workbook('/Users/baobao/Desktop/寫作/聘用人信息.xlsx')ws = wb.active# 利用Excel中的信息替換word模板中的信息,並保持修改後的word文檔for row in range(2,ws.max_row+1): doc = Document('/Users/baobao/Desktop/寫作/人事聘用合同模板.docx') for col in range(1,ws.max_column+1): old_info = str(ws.cell(row=1,column=col).value) new_info = str(ws.cell(row=row,column=col).value) info_replace(doc,old_info,new_info) doc_name = str(ws.cell(row=row,column=2).value) doc.save(f'/Users/baobao/Desktop/寫作/結果集/{doc_name}聘用合同.docx')

結果

打開任一文件可以看到信息已經被替換

當你有成千上萬個文檔需要生成時,需要修改的地方只有三個文件路徑即可,甚至你可以利用我之前的文章中【如何把Python變成撩妹神器】介紹的內容,將此python代碼打包成.exe文件,就像運行軟件一樣實現word文檔的批量生成。

0 阅读:0

我是智能取經人

簡介:感謝大家的關注