歡迎光臨
每天分享高質量文章

入門乾貨:Python操作Word檔案經驗分享

導讀:Microsoft Word在當前使用中是佔有巨大優勢的文書處理器,這使得Word專用的檔案格式Word 檔案(.docx)成為事實上最通用的標準。

在日常工作中,有些時候會有很多重覆的工作,比如批次的替換、報名錶、合同、邀請函等很多格式一樣的檔案,要對這些檔案進行讀寫與彙總,程式員的智慧就是把重覆的工作簡單化,下麵介紹一些經驗彙總,請讀者註意,程式學習最重要的是思想。

 

 

作者:老A

如需轉載請聯絡大資料(ID:hzdashuju)

 

01 模組的安裝和匯入

 

python-docx模組安裝需要在cmd命令列中輸入:

pip install python-docx

02 讀取已存在的一個事先有內容的測試檔案test1.docx程式碼

import docx
file=docx.Document("/test/test1.docx")
print("段落數:"+str(len(file.paragraphs))) 
for para in file.paragraphs:
    print(para.text)
for i in range(len(file.paragraphs)):
print("第"+str(i)+"段的內容是:"+file.paragraphs[i].text)

03 檔案中內容批次替換

首先程式是讀取檔案夾下檔案名稱,獲取絕對路徑,按絕對路徑讀取檔案,把讀取的檔案中指定內容進行替換,最後把替換後的內容儲存到另外的檔案夾中:

import os
xmldir='D:/test /test'
xmllist=os.listdir(xmldir)
for xml in xmllist:
    if '.txt ' in txt 
      fo=open(xmldir+'/'+'new_{}'.format(txt),'w')
      print('{}'.format(txt))
      fi=open(xmldir+'/'+'{}'.format(txt),'r')
      content=fi.readlines()
      for line in content:
         line=line.replace('替換前的內容','替換後的內容')
         fo.write(line)
      fo.close()
      print('替換完成')

04 利用docxtpl將指定資料

本經驗是從test/exce.csv檔案中讀完並寫入到test/合同例子.docx中儲存輸出。

import os
from docxtpl import DocxTemplate
tpl = DocxTemplate('test/合同例子.docx')
context = {
   "name": name,
   "department": department,
   "position": position,
   "time": time,
   "id": id_card,
   "addr": addr,}
tpl.render(context)
tpl.save("{}的合同.docx".format(name))

05 將所有受邀者的公司名和代表姓名填入路徑為test/test_name_list.xlsx的表格

在需要填字的地方打上“***”,然後Python來填字,最後儲存為test/邀請函.docx,下麵程式碼段為讀入資訊,然後寫入word檔案中。

from openpyxl import load_workbook
wb=load_workbook('teset/test_name_list.xlsx')
ws=wb['name']
names=[]
for row in range(2,ws.max_row+1):
    company=ws["A"+str(row)].value
    name=ws["B"+str(row)].value
    names.append(" {} {} ".format(company,name))
doc=docx.Document('test/邀請函.docx')
for name in names:
    doc.paragraphs[1].runs[2].text=name
doc.save('test/邀請函_{}.docx'.format(name))

word是坐在電腦前百分之九十的人都會用的辦公軟體,word東西少還好說,手動開啟那樣存入表格也簡單,但是當資料達到幾萬幾十萬、幾百萬大資料級那就恐怖了,如果全靠手動,那麼至少要連上一個月的班了,不能停息的那種!

每天重覆一樣的操作,恐怖嗎?想想都可怕,這時候就是真正體現技術方面的能力了,很多東西都可以自動實現,如果手動的話,真不知道搞到猴年馬月,耗時沒有什麼意義!

學習永不停牌,今天一小步明天一大步!

 

關於作者:老A,專案管理師,專業興趣研究方向:大資料、計算機軟體、通訊工程。個人業餘愛好是研究無人機製作,銀元鑒賞與收藏。

本文為「大資料」內容合夥人之「鑒書小分隊」活動讀書筆記,由大資料粉絲原創,轉載請與我們取得聯絡。

 

「大資料」內容合夥人之「鑒書小分隊」上線啦!

最近,你都在讀什麼書?有哪些心得體會想要跟大家分享?

 

資料叔最近搞了個大事——聯合優質圖書出版商機械工業出版社華章公司發起鑒書活動。

簡單說就是:你可以免費讀新書,你可以免費讀新書的同時,順手碼一篇讀書筆記就行。詳情請在大資料公眾號後臺對話方塊回覆合夥人檢視。

贊(1)

分享創造快樂