Python辦公自動化 --- Word專欄
在工作學習中
有時我們需要将多個word檔案進行合并
如果每個word檔案的頁數較多
或者word檔案比較多
進行人工合并,就會比較麻煩,而且耗時
這時,用Python來處理,3秒就可以搞定!
導入所需的python庫
#庫docx是處理docx格式word文檔的重要庫
from docx import Document
#庫docxcompose是python合并或追加 微軟Word (.docx)文檔的庫
from docxcompose.composer import Composer
#庫pathlib是檔案路徑處理的庫
from pathlib import Path
具體實作過程
"""
擷取檔案夾中的所有docx格式的檔案,傳回生成器files,本案例是從e盤下#的400檔案夾裡提取所有的docx格式的word文檔,如果是doc格式的,需先轉為docx。
"""
files = Path('e:/400/').glob('*.docx')
#将生成器files轉為清單fiels,友善後面使用
files = list(files)
"""
本案例将第1個docx檔案,作為合并後檔案的模闆,也就是說,合并後的新word文檔,其頁眉頁腳以及頁碼,是以第1個docx檔案的頁眉頁腳以及頁碼為準的,忽略其它docx檔案的頁眉頁腳以及頁碼等。
"""
#讀取第1個檔案
dmt = Document(files[0])
#第1個檔案的末尾添加分頁符
dmt.add_page_break()
#将添加了分頁符的第1個檔案,放到Composer對象中,即成為模闆
cp = Composer(dmt)
print('模闆檔案是:{}'.format(files[0])) #提示哪個是模闆檔案
"""
#将其它docx格式的word檔案,追加到Composer對象中,即依照檔案在files清單中由左到右的順序連接配接起來。同時,輸出每次追加檔案的名稱及其字尾,友善檢視并核對合并的前後順序是否正确。
"""
#循環追加每個docx檔案
for file in files[1:]:
dmt = Document(file)
#每個word檔案的末尾添加分頁符
dmt.add_page_break()
#将每一個dmt追加到Composer對象cp中
cp.append(dmt)
#提示目前合并的檔案是哪個檔案
print('已合并檔案:{}'.format(file))
"""
最後将對象cp中添加的内容輸出到本地,并取名為new.docx
"""
#儲存合并後的檔案為new.docx
cp.save('e:/new.docx')
#提示合并工作完成
print('完成')
注意事項
上面的代碼可以實作批量合并docx文檔,非常友善我們解決這類合并需求。
預設情況下,Composer對象将每個docx檔案從每個檔案的末尾開始追加或合并,而不是從下一頁開始合并。如果每個檔案都要從下一頁合并,需要如上所示添加分頁符。
對于含有文字、圖檔、表格等内容的docx,以上代碼可以使用。如果docx檔案中含有文本框等内容,以上代碼運作時會報錯。需要将docx檔案中的文本框等處理掉,才能使用以上代碼。
更多python辦公自動化案例和經驗
請繼續關注我們的公衆号和頭條号
後期會持續進行更新
“白領服務工作室”的系列視訊課如下:
Python辦公自動化---Python入門課程
Python辦公自動化---Python進階課程
Python辦公自動化---正規表達式
Python辦公自動化---資料分析
Python辦公自動化---網絡爬蟲
Python辦公自動化---Excel表格專欄
Python辦公自動化---Pdf專欄
Python辦公自動化---Word專欄
Python辦公自動化---圖像專欄
Python辦公自動化---人工智能API
Excel/WPS表格 --- 資料處理
如需學習以上視訊課程,敬請留言!
作者 | 小白
來源 | 原創
編輯 | 白領服務工作室