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')