??本文介紹基于Python,實作對多個Word檔案加以自動合并,并在每次合并時按要求增添一個分頁符的方法,
??現有多個Word檔案檔案,需將其按名稱順序合并為一個新的Word檔案,且需保證每一次合并時,都另起一頁(即新的Word檔案一頁中,不能出現兩個及以上的原本單個Word檔案的內容),
??一般的,實作多個Word檔案的合并,在Word中可以通過“插入”→“文本”→“物件”的方式進行,較為方便,

??在彈出的視窗中選擇需要合并的Word檔案即可,

??但是,這種方法作業量較大,且無法滿足合并時另起一頁的要求,例如,如果原本有兩個Word檔案,每個檔案中都僅有一頁,一頁中僅在第一行有內容(這里假設是一行數字),則合并后的新Word檔案同樣為一頁,該頁中包含兩行數字,即無法另起一頁合并,
??因此,本文就結合Python中python-docx(docx)模塊與docxcompose模塊,實作本文開頭提及的需求,
??首先安裝python-docx模塊,由于我用的是Anaconda,因此就直接在Anaconda Prompt (Soft)中加以安裝,
??打開Anaconda Prompt (Soft),

??在彈出的界面中輸入:
conda install -c conda-forge python-docx

??輸入y,開始安裝,

??隨后即可安裝完成,

??接下來安裝docxcompose,還是一樣的操作,輸入:
pip install docxcompose

??安裝完成后,即可開始代碼的書寫,整體代碼如下:
import os
from docx import Document
from docxcompose.composer import Composer
original_docx_path='F:/其他學生作業/2020就業聯絡員/2021.06派遣材料與調檔函/地信1701_就業派遣材料/'
new_docx_path='F:/其他學生作業/2020就業聯絡員/2021.06派遣材料與調檔函/地信1701.docx'
all_word=os.listdir(original_docx_path)
all_file_path=[]
for file_name in all_word:
all_file_path.append(original_docx_path+file_name)
master=Document(all_file_path[0])
middle_new_docx=Composer(master)
num=0
for word in all_file_path:
word_document=Document(word)
word_document.add_page_break()
if num!=0:
middle_new_docx.append(word_document)
num=num+1
middle_new_docx.save(new_docx_path)
??首先,對代碼加以初步介紹,original_docx_path為存放需要合并的Word檔案路徑,new_docx_path為需要合并入其中的Word檔案,這里大家直接在目標路徑下新建一個Word檔案并重命名為需要的檔案名即可,
??隨后,通過os.listdir獲取所有需要合并的Word檔案檔案名,在這里需要注意,如果需要按照檔案名稱作為合并順序,大家直接在資源管理器中調整檔案排序方法為名稱即可,隨后通過.append()逐一將檔案名稱與其路徑合并,
??接下來,設立一個Word檔案模板master,其實這個模板就是限定了合并完成后的新Word檔案的字體等格式,如果我們不設定模板,就會用docx模塊中的默認模板,導致合并后的檔案字體與合并前的檔案字體不一致(內容是一致的,主要是字體等格式會出問題),在這里,為了保證合并完成后的新Word檔案的字體等格式與合并前檔案一致,直接用all_file_path[0](也就是即將要被合并的第一個檔案)作為模板即可,其次,將模板用Composer()激活(這里Composer函式個人認為就是激活的作用),從而將其作為模板格式,對多個待合并的檔案加以約束,
??最后,由于需要保證每一次合并都另起一頁,便用.add_page_break()函式,在每一次合并前將這一待合并的檔案末尾增添分頁符,同時,由于我們用了第一個待合并檔案作為模板,因此后期只需要從第二個檔案開始進行合并即可(可以理解為,檔案一旦選擇為模板,其自動完成了自身的合并),最后保存檔案即可,
??綜上,便完成了“按名稱順序合并為一個新的Word檔案,且需保證每一次合并時,都另起一頁”的需求,但是需要注意,這一方法對于較為復雜的Word檔案(例如含有文本框等形式內容的檔案)不能實作合并,會報錯;對于含有普通文字、圖片等的Word檔案而言,還是很方便的~
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/544691.html
標籤:Python
