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

Python之word文档替换字符串(也可以用于短模板套用)的更多相关文章

  1. Python之word文档模板套用 - 真正的模板格式套用

    Python之word文档模板套用: 1 ''' 2 #word模板套用2:套用模板 3 ''' 4 5 #导入所需库 6 from docx import Document 7 ''' 8 #另存w ...

  2. Python读取word文档内容

    1,利用python读取纯文字的word文档,读取段落和段落里的文字. 先读取段落,代码如下: 1 ''' 2 #利用python读取word文档,先读取段落 3 ''' 4 #导入所需库 5 fro ...

  3. 利用Python操作Word文档【图片】

    利用Python操作Word文档

  4. 2018-10-04 [日常]用Python读取word文档中的表格并比较

    最近想对某些word文档(docx)的表格内容作比较, 于是找了一下相关工具. 参考Automate the Boring Stuff with Python中的word部分, 试用了python-d ...

  5. Python读取word文档(python-docx包)

    最近想统计word文档中的一些信息,人工统计的话...三天三夜吧 python 不愧是万能语言,发现有一个包叫做 docx,非常好用,具体查看官方文档:https://python-docx.read ...

  6. python读取word文档

    周末需要做一个统计word文档字数的问题,刚开始以为很简单,因为之前做过excel表格相关的任务,所以认为利用扩展模块应该比较简单. 通过搜索,确实搜到了一个python操作word的模块,pytho ...

  7. Python将word文档批量转PDF

    前面有一篇<Python批量创建word文档(2)- 加图片和表格>的文章,利用这篇文章创建的word文档来批量转PDF文档.代码: 1 ''' 2 #python批量将word文档转换成 ...

  8. Python将word文档转换成PDF文件

    如题. 代码: ''' #將word文档转换为pdf文件 #用到的库是pywin32 #思路上是调用了windows和office功能 ''' #导入所需库 from win32com.client ...

  9. python 操作word文档

    因为工作需要操作一些word文档,记录一下学习思路 #-*- encoding: utf8 -*- import win32com from win32com.client import Dispat ...

随机推荐

  1. 设置searchDisplayController的searchResultsTableView的UITableViewStyle为grouped

    [self.searchDisplayController setValue:[NSNumber numberWithInt:UITableViewStyleGrouped] forKey:@&quo ...

  2. Eclipse中get/set方法自动生成

    代码中点击右键(快捷键Ctrl+Alt+S) ->Source ->Generate Getters and Setters... ->全选(或选择需要生成的字段/方法) 动图: 静 ...

  3. 跟阿斌一起学鸿蒙(2). Ability vs App?

    在进一步实践之前,需要先弄明白一个概念:Ability. 不知道你有没有注意到,使用鸿蒙开发工具DevEco Studio创建项目时,我们选择创建的是一个个Ability. 这是为什么呢? 1. 鸿蒙 ...

  4. springboot补充

    springboot中的日志: 在默认的spring-boot-starter中,会引入spring-boot-starter-logging, 而springboot-starte-longing中 ...

  5. 面试官:说一下List排序方法

    1. 前言 排序算是比较高频的面试题了,节前面试了的两家公司都有问到排序问题,整理后分享给大家(文末见总结). 通常我们想到实现排序就是 Collections 工具类的 sort() 方法,而 so ...

  6. MySQL二进制文件(binlog)

    二进制文件(binlog)记录对MySQL数据库执行更改的所有操作,但不包括SELECT和SHOW这类操作,因为这类操作没有改变数据. 为什么会有binlog? 首先 binlog 是 Server ...

  7. 网络编程原理与UDP实现

    如何发送数据包? Q:当应用程序产生数据的时候,需要去构造数据包并发送到网络上去,但是由谁负责处理呢? A:现代操作系统负责数据包得构造与发送,应用程序只需提供数据. 当应用程序产生数据时,应用程序将 ...

  8. 对巡风vulscan的理解

    # coding:utf-8 # 漏洞检测引擎 import urllib2 import thread import time import pymongo import sys import da ...

  9. C# 继承类的值赋

    C# 继承类的值赋 /// <summary> /// 将父类的值赋值到子类中 /// </summary> /// <typeparam name="TPar ...

  10. Android全面解析之Context机制

    前言 很高兴遇见你~ 欢迎阅读我的文章. 在文章Android全面解析之由浅及深Handler消息机制中讨论到,Handler可以: 避免我们自己去手动写 死循环和输入阻塞 来不断获取用户的输入以及避 ...