Python之word文檔模板套用 - 真正的模板格式套用


Python之word文檔模板套用:

 1 '''
 2     #word模板套用2:套用模板
 3 '''
 4 
 5 #導入所需庫
 6 from docx import Document
 7 '''
 8     #另存word文檔后格式丟失的問題要導入庫設定word文檔的初始格式
 9     from docx.shared import Pt
10     from docx.oxml.ns import qn
11 '''
12 
13 #導入模板文檔
14 document = Document('D:/路徑/模板.docx')
15 '''
16     #如果出現word文檔表格格式丟失的時候,需要設置word文檔的整體樣式,將這一段注釋取消
17     document.styles['Normal'].font.name = '微軟雅黑'
18     document.styles['Normal']._element.rPr.rFonts.set(qn('w:eastAsia'),u'微軟雅黑')
19     document.styles['Normal'].font.size = Pt(12)
20 '''
21 #創建函數
22 def change_text(old_text, new_text):
23     #讀取模板文檔里的所有段落
24     all_paragraphs = document.paragraphs
25     #開始循環段落
26     for paragraph in all_paragraphs:
27         #開始循環段落里的每個run,如果發現run在打印的時候是不整齊的,那么需要重新創建一份模板,並且以純文字的方式粘貼
28         for run in paragraph.runs:
29             #開始替換文字內容,用new_text替換old_text,如果沒有就不替換
30             run_text = run.text.replace(old_text, new_text)
31             run.text = run_text #再把run_text賦值給run的文字部分,要解釋的是,不在paragraph里更改是會丟失格式
32     #獲取文檔里的所有表格
33     all_tables = document.tables
34     #循環讀取每個表格
35     for table in all_tables:
36         #循環讀取每個表格的每行
37         for row in table.rows:
38             #循環讀取每行的每個單元格
39             for cell in row.cells:
40                 #開始替換單元格里的文字內容
41                 cell_text = cell.text.replace(old_text, new_text)
42                 #再把替換后的文字返還給表格內容
43                 cell.text = cell_text
44 #開始替換
45 change_text('','OK')
46 change_text('','哈士奇')
47 
48 #另存文檔,就可以完成格式套用,(可能表格格式會丟失,即不是模板格式,回到新建word文檔時候的格式,這就要在代碼開頭指定整個文檔的格式)
49 document.save('test.docx')

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM