天天看點

30個word檔案,3秒合并為1個word檔案!

Python辦公自動化 --- Word專欄

在工作學習中

有時我們需要将多個word檔案進行合并

如果每個word檔案的頁數較多

或者word檔案比較多

進行人工合并,就會比較麻煩,而且耗時

這時,用Python來處理,3秒就可以搞定!

30個word檔案,3秒合并為1個word檔案!

導入所需的python庫

#庫docx是處理docx格式word文檔的重要庫

from docx import Document

#庫docxcompose是python合并或追加 微軟Word (.docx)文檔的庫

from docxcompose.composer import Composer

#庫pathlib是檔案路徑處理的庫

from pathlib import Path

30個word檔案,3秒合并為1個word檔案!

具體實作過程

"""

擷取檔案夾中的所有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('完成')

30個word檔案,3秒合并為1個word檔案!

注意事項

上面的代碼可以實作批量合并docx文檔,非常友善我們解決這類合并需求。

預設情況下,Composer對象将每個docx檔案從每個檔案的末尾開始追加或合并,而不是從下一頁開始合并。如果每個檔案都要從下一頁合并,需要如上所示添加分頁符。

對于含有文字、圖檔、表格等内容的docx,以上代碼可以使用。如果docx檔案中含有文本框等内容,以上代碼運作時會報錯。需要将docx檔案中的文本框等處理掉,才能使用以上代碼。

30個word檔案,3秒合并為1個word檔案!

更多python辦公自動化案例和經驗

請繼續關注我們的公衆号和頭條号

後期會持續進行更新

30個word檔案,3秒合并為1個word檔案!

“白領服務工作室”的系列視訊課如下:

Python辦公自動化---Python入門課程

Python辦公自動化---Python進階課程

Python辦公自動化---正規表達式

Python辦公自動化---資料分析

Python辦公自動化---網絡爬蟲

Python辦公自動化---Excel表格專欄

Python辦公自動化---Pdf專欄

Python辦公自動化---Word專欄

Python辦公自動化---圖像專欄

Python辦公自動化---人工智能API

Excel/WPS表格 --- 資料處理

如需學習以上視訊課程,敬請留言!

30個word檔案,3秒合并為1個word檔案!

作者 | 小白

來源 | 原創

編輯 | 白領服務工作室

30個word檔案,3秒合并為1個word檔案!
30個word檔案,3秒合并為1個word檔案!