本文目錄一覽:
python處理word文檔
有個庫叫『Python-docx』
安裝之後 python 可以讀寫 word 文檔,就可以拼接了。
python合併word
合併多個 word文件到 一個文件 中,用於文件的批量打印。
要求:
採用 python 實現,使用python中的 python-docx 和 docxcompose 結合的方式來實現此功能。
優點:
缺點:
只支持docx 文件的合併, 不支持doc文件 。如想通過此模式合併doc文件,需將doc文檔轉換為docx文檔。
將一個文件夾中的所有文件,都合併到一個文檔中。
要求每個文檔,都從一個新頁面開始,因此需在除第一個文檔的每個文檔前面加上 分頁符 ,所以單獨定義了一個只包含分頁符的文檔 page_break_doc 。
部分情況下會出現問題,如文檔當前已經到 最後一行 了,新加的分頁符會導致生成一頁空白的文件, 此種情況,後續更新此文章時解決 。
定義目標文檔,初始化時,採用 target_doc = Document(source_file_path_list[0]) 的方式,以第一個要拼接的文檔作為初始文檔。
主要是因為,如果創建的空的文檔 target_doc = Document() ,新生成的文檔中 自帶的文檔樣式 (如標題樣式、正文樣式等) 將會影響新拼接的文檔中的採用了默認樣式的內容 ,故模板文檔從第一個文檔中進行加載默認樣式,避免了這種情況。
這也是網上大多數採用此種方式合併word,樣式發生變更的原因 ,需注意此問題。
同時需注意,如果拼接的文檔中,存在默認格式不一樣,並且未為段落、文字指定單獨樣式的情況時,需檢查,第一個文件作為模板加載的默認樣式, 是否會影響後續的其他文件合併後的默認樣式 。
200個文件合併,耗時10秒左右。速度非常快
python腳本的程序,其他程序可以直接通過 命令行的形式調用 ,或者python提供http接口,程序通過 http接口調用 。
切記通過http接口調用其他程序是,需設置好調用超時時間,防止無限等待請求結果,導致負載均衡時,大量請求超時而導致的程序整體不再分發請求。
python操作word文檔,如何合併單元格
app=my.Office.Word.GetInstance()
doc=app.Documents[0]
table=doc.Tables[1]
table.Cell(1,1).Select()
app.Selection.MoveDown(Unit=5, Count=2, Extend=1)
app.Selection.Cells.Merge()
my.Office.Word.GetInstance()用win32com得到Word的Application對象的實例
我所使用的樣本word文件中包含兩個Table第二個Table是想要修改的
table.Cell(1,1).Select()用於選中這個樣表的第一個單元格
app.Selection.MoveDown用於獲得向下多選取3個單元格
app.Selection.Cells.Merge()用於執行合併工作
Python 讀取文檔各行中同一列數據並按首尾相接合併輸出到另一個文件中
def zhidao_556225095(infile, outfile):
reader = open(infile, ‘r’)
writer = open(outfile, ‘w’)
buff = []
buff_size = 1000 # 文件太大,分塊緩存輸出
while True:
line = reader.readline()
if len(line) == 0:
break
field = line.split()[2]
buff.append(field.strip())
if len(buff) = buff_size:
writer.write(”.join(buff))
buff = []
else:
writer.write(”.join(buff))
writer.close()
reader.close()
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/293887.html