Python 自動化辦公|Word文檔

【Python 自動化辦公】專欄是介紹如何利用python辦公,減少工作負荷沮稚。篇幅精煉,內(nèi)容易懂册舞,無論是否有編程基礎蕴掏,都非常適合。

在上次文章中,我們學習了【用python寫入excel】盛杰,這次我們學習Python寫word文檔吧挽荡!

場景:
有時候,辦公室需要按模版生成的固定的文件即供,模板是固定的定拟,只是每次需要替換信息。如下圖的收入證明逗嫡,模版中所有標黃的都是需要替換的信息:

image

如果手工來做這個事情青自,每次至少需要10分鐘的時間。假如每天要開15份祸穷,則至少要花2個半小時性穿,而且手工編輯word很容易出錯勺三。

可不可用python寫個程序雷滚,解決這個問題呢?

結論當然是肯定的吗坚!

0.摘要

本文大約需要15分鐘祈远,建議在電腦上打開,邊閱讀邊操作商源。

  1. 安裝Python讀寫word模塊车份,python-docx
  2. 準備word模板,準備寫入word文檔內(nèi)容
  3. 編寫python代碼并運行
    4.通過讀取excel表格中的信息牡彻,批量生成word文件

1.安裝python-docx模塊

與上篇文章類似扫沼,需要在cmd窗口輸入pip install python-docx

image

2.準備word模板庄吼,準備寫入word文檔內(nèi)容

word模板如上所示缎除,(可以不需要標黃),這里注意总寻,需要替換的文字或數(shù)字位置器罐,用"XXXX"來固定替代。保存為個人收入證明.docx渐行。

名稱內(nèi)容姓名張三身份證號104111199009103531職務工程師工作年限10月收入10000大寫壹萬元整聯(lián)系人李四單位名稱格物致知股份有限公司單位地址珠海市橫琴新區(qū)寶華路6號105室-67425聯(lián)系電話0756-8627528

3. 編寫python代碼并運行

在word模板的同級目錄轰坊,新建一個writeword.py文件,用記事本或其他文本編輯工具打開祟印。

編程思路:

  1. 用python打開對應doc模板
  2. 按順序找到每一個需要替換的位置字符"XXXX"肴沫,替換為對應的內(nèi)容
  3. 另存為doc為另一個文件

在文本編輯工具中輸入如下代碼,保存并關閉蕴忆。

from docx import Document
#準備寫入內(nèi)容
name="張三"
id_code="104111199009103531"
career="工程師"
working_years="10"
salary="10000"
salary_uppercase="壹萬元整"
contact="李四"
company="格物厚德股份有限公司"
address="珠海市橫琴新區(qū)寶華路6號105室-67425"
tel="0756-8627528"
#打開doc

textlist=[name,id_code,career,working_years,salary,salary_uppercase,company,address,contact,tel]

doc = Document("個人收入證明.docx")

count=0

for p in doc.paragraphs:
        if 'XXXX' in p.text:
            inline = p.runs
            for i in range(len(inline)):
                if 'XXXX' in inline[i].text:
                    text = inline[i].text.replace('XXXX', textlist[count])
                    inline[i].text = text
                    count+=1
                    print(count)
doc.save("%s_個人收入證明.docx"%name)

在同級目錄颤芬,打開cmd,運行writeword.py python writeword.py

生成結果如下:
張三_個人收入證明.docx

image

4.通過讀取excel表格中的信息,批量生成word文件

這里生成了對應word文件驻襟,但也有幾個問題:

  1. 對應的日期并沒有自動填寫夺艰,應當填寫文件生成時對應的日期
  2. 如果是生成大量同樣word文檔的話,目前的程序也需要一個一個改沉衣,并沒有提升太多效率

如果您看過我們之前的2篇用python讀寫excel的文章郁副,您肯定就會想到,可以利用讀取excel表格里的內(nèi)容豌习,批量生成對應的word文檔存谎。對,讓我們繼續(xù)吧肥隆!

這里再準備一個excel文件既荚,將需要批量寫入的信息寫在excel中,并保存為income.xlsx在同級目錄栋艳,如下圖:

image

修改python 文件writeword.py

from docx import Document
#準備寫入內(nèi)容
import xlrd
import time
# 當前時間元組
from datetime import datetime
nt=datetime.now()
# 可以輸入中文年月日
datestr=nt.strftime('%Y{y}%m{m}%dems8aws').format(y='年', m='月', d='日')

xlsx=xlrd.open_workbook('income.xlsx')
sheet=xlsx.sheet_by_index(0)
for row in range(1,sheet.nrows):
    doc = Document("個人收入證明.docx")
    count=0
    textlist=[]
    for col in range(0,sheet.ncols):
        textlist.append(str(sheet.cell_value(row, col)))

    for p in doc.paragraphs:
            if 'XXXX' in p.text:
                inline = p.runs
                for i in range(len(inline)):
                    if 'XXXX' in inline[i].text:
                        text = inline[i].text.replace('XXXX', textlist[count])
                        inline[i].text = text
                        count+=1
            if 'X 年   X 月  X 日' in p.text:
                inline = p.runs
                for i in range(len(inline)):
                    if 'X 年   X 月  X 日' in inline[i].text:
                        text = inline[i].text.replace('X 年   X 月  X 日', datestr)
                        inline[i].text = text

    doc.save("%s_個人收入證明.docx"%textlist[0])

運行后恰聘,輸入結果:

image
image
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市吸占,隨后出現(xiàn)的幾起案子晴叨,更是在濱河造成了極大的恐慌,老刑警劉巖矾屯,帶你破解...
    沈念sama閱讀 211,639評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件兼蕊,死亡現(xiàn)場離奇詭異,居然都是意外死亡件蚕,警方通過查閱死者的電腦和手機孙技,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,277評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來排作,“玉大人牵啦,你說我怎么就攤上這事∨ι埽” “怎么了蕾久?”我有些...
    開封第一講書人閱讀 157,221評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長身辨,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,474評論 1 283
  • 正文 為了忘掉前任盹愚,我火速辦了婚禮,結果婚禮上站故,老公的妹妹穿的比我還像新娘皆怕。我一直安慰自己毅舆,他們只是感情好,可當我...
    茶點故事閱讀 65,570評論 6 386
  • 文/花漫 我一把揭開白布愈腾。 她就那樣靜靜地躺著憋活,像睡著了一般。 火紅的嫁衣襯著肌膚如雪虱黄。 梳的紋絲不亂的頭發(fā)上悦即,一...
    開封第一講書人閱讀 49,816評論 1 290
  • 那天,我揣著相機與錄音橱乱,去河邊找鬼辜梳。 笑死,一個胖子當著我的面吹牛泳叠,可吹牛的內(nèi)容都是我干的作瞄。 我是一名探鬼主播,決...
    沈念sama閱讀 38,957評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼危纫,長吁一口氣:“原來是場噩夢啊……” “哼宗挥!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起叶摄,我...
    開封第一講書人閱讀 37,718評論 0 266
  • 序言:老撾萬榮一對情侶失蹤属韧,失蹤者是張志新(化名)和其女友劉穎安拟,沒想到半個月后蛤吓,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,176評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡糠赦,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,511評論 2 327
  • 正文 我和宋清朗相戀三年会傲,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片拙泽。...
    茶點故事閱讀 38,646評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡淌山,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出顾瞻,到底是詐尸還是另有隱情泼疑,我是刑警寧澤,帶...
    沈念sama閱讀 34,322評論 4 330
  • 正文 年R本政府宣布荷荤,位于F島的核電站退渗,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏蕴纳。R本人自食惡果不足惜会油,卻給世界環(huán)境...
    茶點故事閱讀 39,934評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望古毛。 院中可真熱鬧翻翩,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,755評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至桨仿,卻和暖如春弧烤,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背蹬敲。 一陣腳步聲響...
    開封第一講書人閱讀 31,987評論 1 266
  • 我被黑心中介騙來泰國打工暇昂, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人伴嗡。 一個月前我還...
    沈念sama閱讀 46,358評論 2 360
  • 正文 我出身青樓急波,卻偏偏與公主長得像,于是被迫代替她去往敵國和親瘪校。 傳聞我的和親對象是個殘疾皇子澄暮,可洞房花燭夜當晚...
    茶點故事閱讀 43,514評論 2 348

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

  • 我們在實例5中演示了如何用Python批量生成word版邀請函。我們是簡單粗暴地找到需要填寫受邀者信息所在位置(即...
    PythonOffice閱讀 3,306評論 9 10
  • 知乎上有人提問:用python進行辦公自動化都需要學習什么知識呢? 這可能是很多非IT職場人士面臨的困惑麻惶,想把py...
    python大數(shù)據(jù)分析閱讀 12,734評論 3 157
  • 作家曹勤學 有人說馍刮,你在朋友圈里不斷提到的作家曹勤學,文章寫的那么好窃蹋,令人仰慕卡啰。 曹勤...
    邯鄲趙金海閱讀 1,744評論 0 2
  • Vue 生命周期簡介 生命周期的鉤子 LifeCycle hooks 每個 Vue 實例在被創(chuàng)建的時候都要經(jīng)過一系...
    可笑的黑耀斑閱讀 486評論 0 0
  • 清晨六點十分,鬧鐘照常響起警没,醒了匈辱,內(nèi)心掙扎一下,還是起床穿衣出門杀迹。好冷啊亡脸,真想找個地洞鉆進去冬眠一季,開春再出來树酪。...
    荒原鷹閱讀 221評論 0 2