Python之word文档替换字符串(也可以用于短模板套用)
Python之word文档替换字符串(也可以用于短模板套用),代码如下:
1 ''' 2 #word模板套用1:创建模板,适合比较短的文档 3 ''' 4 5 #导入所需库 6 from docx import Document 7 from docx.enum.text import WD_PARAGRAPH_ALIGNMENT 8 from docx.shared import Pt 9 from docx.oxml.ns import qn 10 11 #开始创建文档 12 document = Document() 13 #设置文档的初始字体 14 document.styles['Normal'].font.name = '黑体' 15 #设置文档的中文初始字体 16 document.styles['Normal']._element.rPr.rFonts.set(qn('w:eastAsia'),u'黑体') 17 18 #创建函数来批量添加内容 19 def add_context(context): 20 #函数体开始 21 #新建段落 22 p = document.add_paragraph() 23 #设置段落对齐格式 24 p.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER 25 #向段落添加内容 26 r = p.add_run(str(context)) 27 #因为文档的样式在代码开始的时候就设置了,这里只设置字体段落文字的字体大小就好了,有需要可以添加 28 r.font.size = Pt(16) 29 #设置段前段后距离 30 p.space_after = Pt(5) 31 p.space_before = Pt(5) 32 #指定好要替换的内容 33 change = '哈士奇' 34 #开始添加内容 35 add_context('汉皇重色思倾国,御宇多年求不得。杨家有%s初长成,养在深闺人未识。' % change) #将'女'替换成‘哈士奇' 36 add_context('天生丽质难自弃,一朝选在君王侧。回眸一笑百媚生,六宫粉黛无颜色。') 37 add_context('春寒赐浴华清池,温泉水滑洗凝脂。侍儿扶起娇无力,始是新承恩泽时。') 38 add_context('云鬓花颜金步摇,芙蓉帐暖度春宵。春宵苦短日高起,从此君王不早朝。') 39 add_context('承欢侍宴无闲暇,春从春游夜专夜。后宫佳丽三千人,三千宠爱在一身。') 40 add_context('金屋妆成娇侍夜,玉楼宴罢醉和春。姊妹弟兄皆列土,可怜光彩生门户。') 41 add_context('遂令天下父母心,不重生男重生%s。骊宫高处入青云,仙乐风飘处处闻。' % change) #将'女'替换成‘哈士奇' 42 add_context('缓歌慢舞凝丝竹,尽日君王看不足。渔阳鼙鼓动地来,惊破霓裳羽衣曲。') 43 44 #保存文档 45 document.save('D:/路径/替换%s操作展示.docx' % (change))
上面是单一替换,下面替换多个:
1 ''' 2 #word模板套用1:创建模板,适合比较短的文档 3 ''' 4 5 #导入所需库 6 from docx import Document 7 from docx.enum.text import WD_PARAGRAPH_ALIGNMENT 8 from docx.shared import Pt 9 from docx.oxml.ns import qn 10 11 #创建一个要替换的列表 12 dog_list = ['哈士奇','阿拉斯加','萨摩'] 13 #开始循环列表 14 for change in dog_list: 15 #开始创建文档 16 document = Document() 17 #设置文档的初始字体 18 document.styles['Normal'].font.name = '黑体' 19 #设置文档的中文初始字体 20 document.styles['Normal']._element.rPr.rFonts.set(qn('w:eastAsia'),u'黑体') 21 22 #创建函数来批量添加内容 23 def add_context(context): 24 #函数体开始 25 #新建段落 26 p = document.add_paragraph() 27 #设置段落对齐格式 28 p.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER 29 #向段落添加内容 30 r = p.add_run(str(context)) 31 #因为文档的样式在代码开始的时候就设置了,这里只设置字体段落文字的字体大小就好了,有需要可以添加 32 r.font.size = Pt(16) 33 #设置段前段后距离 34 p.space_after = Pt(5) 35 p.space_before = Pt(5) 36 37 #开始添加内容 38 add_context('汉皇重色思倾国,御宇多年求不得。杨家有%s初长成,养在深闺人未识。' % change) #将'女'替换成‘哈士奇' 39 add_context('天生丽质难自弃,一朝选在君王侧。回眸一笑百媚生,六宫粉黛无颜色。') 40 add_context('春寒赐浴华清池,温泉水滑洗凝脂。侍儿扶起娇无力,始是新承恩泽时。') 41 add_context('云鬓花颜金步摇,芙蓉帐暖度春宵。春宵苦短日高起,从此君王不早朝。') 42 add_context('承欢侍宴无闲暇,春从春游夜专夜。后宫佳丽三千人,三千宠爱在一身。') 43 add_context('金屋妆成娇侍夜,玉楼宴罢醉和春。姊妹弟兄皆列土,可怜光彩生门户。') 44 add_context('遂令天下父母心,不重生男重生%s。骊宫高处入青云,仙乐风飘处处闻。' % change) #将'女'替换成‘哈士奇' 45 add_context('缓歌慢舞凝丝竹,尽日君王看不足。渔阳鼙鼓动地来,惊破霓裳羽衣曲。') 46 47 #保存文档 48 document.save('D:/路径/替换%s操作展示.docx' % (change))