python第三方庫實(shí)現(xiàn)word郵件合并功能

眾所周知word/WPS中的郵件合并功能可以根據(jù)word模板從excel表格中讀取數(shù)據(jù)涕蚤,進(jìn)而生成不同的文件正驻,可以說郵件合并是效率神器

但是郵件合并也有其缺陷抵拘,那就是每次合并數(shù)據(jù)都需操作插入合并域绰咽,如果經(jīng)常需要根據(jù)數(shù)據(jù)生成固定模板word文件嚷掠,那么就顯得很麻煩

顯然利用程序固定數(shù)據(jù)替換模式就極為方便,需要生成文件時可以一鍵操作

工具:python解釋器首量,xlrd包(Excel數(shù)據(jù)讀茸撤浴),docx-mailmerge包(郵件合并包)

程序有2種文件生成方式:每個生成的文件分別為單一文件加缘,所有生成文件構(gòu)成一個文件

docx-mailmerge僅支持docx格式文件

完成的word模板:

word模板

word模板制作步驟:

word模板制作步驟1
word模板制作步驟2

excel數(shù)據(jù):

excel數(shù)據(jù)

導(dǎo)入python模塊:

import os.path
import xlrd
from mailmerge import MailMerge

word模板和excel數(shù)據(jù)文件路徑參數(shù):

docx = r'E:\測試\證明-模板.docx'
xlsx = r'E:\測試\證明數(shù)據(jù).xlsx'

分別生成至不同文件:

filepath = os.path.dirname(docx)
workbook = xlrd.open_workbook(xlsx)
worksheet = workbook.sheet_by_index(0)
nrow = worksheet.nrows

for key in range(1,nrow):
    with MailMerge(docx) as doc:
        doc.merge(name = str(worksheet.cell_value(key, 1)),
                position = str(worksheet.cell_value(key, 2)))
    
        output = filepath + r'\證明-{}.docx'.format(str(worksheet.cell_value(key, 1)))
        doc.write(output)

生成效果:

生成效果1
生成效果2

全部生成至同一文件:

workbook = xlrd.open_workbook(xlsx)
worksheet = workbook.sheet_by_index(0)
nrow = worksheet.nrows
list1 = []  # 空列表

for key in range(1,nrow):
    dict_temp = {}  # 空字典
    dict_temp['name'] = str(worksheet.cell_value(key, 1))
    dict_temp['position'] = str(worksheet.cell_value(key, 2))
    list1.append(dict_temp)

with MailMerge(docx) as doc:
    doc.merge_templates(list1, separator='page_break')
    output = r'E:\測試\證明文件.docx'
    doc.write(output)

生成效果:

生成效果

生成到同一文件有個小問題鸭叙,每頁證明文件后都有一頁空白頁,不過問題不大拣宏,打印時選擇奇數(shù)頁打印即可沈贝。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市勋乾,隨后出現(xiàn)的幾起案子宋下,更是在濱河造成了極大的恐慌,老刑警劉巖辑莫,帶你破解...
    沈念sama閱讀 217,907評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件学歧,死亡現(xiàn)場離奇詭異,居然都是意外死亡各吨,警方通過查閱死者的電腦和手機(jī)撩满,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,987評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來绅你,“玉大人伺帘,你說我怎么就攤上這事〖删猓” “怎么了伪嫁?”我有些...
    開封第一講書人閱讀 164,298評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長偶垮。 經(jīng)常有香客問我张咳,道長,這世上最難降的妖魔是什么似舵? 我笑而不...
    開封第一講書人閱讀 58,586評論 1 293
  • 正文 為了忘掉前任脚猾,我火速辦了婚禮,結(jié)果婚禮上砚哗,老公的妹妹穿的比我還像新娘龙助。我一直安慰自己,他們只是感情好蛛芥,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,633評論 6 392
  • 文/花漫 我一把揭開白布提鸟。 她就那樣靜靜地躺著军援,像睡著了一般。 火紅的嫁衣襯著肌膚如雪称勋。 梳的紋絲不亂的頭發(fā)上胸哥,一...
    開封第一講書人閱讀 51,488評論 1 302
  • 那天,我揣著相機(jī)與錄音赡鲜,去河邊找鬼空厌。 笑死,一個胖子當(dāng)著我的面吹牛银酬,可吹牛的內(nèi)容都是我干的蝇庭。 我是一名探鬼主播,決...
    沈念sama閱讀 40,275評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼捡硅,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了盗棵?” 一聲冷哼從身側(cè)響起壮韭,我...
    開封第一講書人閱讀 39,176評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎纹因,沒想到半個月后喷屋,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,619評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡瞭恰,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,819評論 3 336
  • 正文 我和宋清朗相戀三年屯曹,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片惊畏。...
    茶點(diǎn)故事閱讀 39,932評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡恶耽,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出颜启,到底是詐尸還是另有隱情偷俭,我是刑警寧澤,帶...
    沈念sama閱讀 35,655評論 5 346
  • 正文 年R本政府宣布缰盏,位于F島的核電站涌萤,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏口猜。R本人自食惡果不足惜负溪,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,265評論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望济炎。 院中可真熱鬧川抡,春花似錦、人聲如沸须尚。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,871評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至倘感,卻和暖如春放坏,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背老玛。 一陣腳步聲響...
    開封第一講書人閱讀 32,994評論 1 269
  • 我被黑心中介騙來泰國打工淤年, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人蜡豹。 一個月前我還...
    沈念sama閱讀 48,095評論 3 370
  • 正文 我出身青樓麸粮,卻偏偏與公主長得像,于是被迫代替她去往敵國和親镜廉。 傳聞我的和親對象是個殘疾皇子弄诲,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,884評論 2 354

推薦閱讀更多精彩內(nèi)容