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\')
版权声明:本文为mafu原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。