有几个文档,要批量替换多个word的同一内容里面的少量内容,想要一个窗口,直接提示输入当前需要的内容,再自动生成打印文档?


在本地准备的三个词语、成语库,为github主pwxcoo整理,下载的过程还有点曲折(因为某些科学上的原因,国内无法下载),所以整个程序的逻辑变成了: 读取word文档->获取准确的字符串内容->调用china_idiom库查询返回内容->如有结果,则将结果写入新的word文档当中;如果无结果,则调用本地库查询;再无内容则返回空结果。---代码基础解析---
我们可以利用如下方法读取docx文档每一行的内容(未包含图片):
from docx import Document
docx_name = 'input.docx'
#原始文档名称
doc = Document(docx_name) # read
#读取每一段的内容
for para in doc.paragraphs:
print(para.text)
我们可以利用如下方法创建一个新docx文档(具体可参阅docx库的官方文档):
from docx.oxml.ns import qn # 设置字体颜色
document = Document() # 创建空文档 write
style = document.styles['Normal'] # 设置一个空白样式
style.font.name = u'黑体'
style.element.rPr.rFonts.set(qn('w:eastAsia'), u'黑体')
# 添加标题,设置级别level,0为Title,1或省略为Heading 1,0<=level<=9
document.add_heading('标题', 0)
# 添加段落,参数为text=''和style=None
p = document.add_paragraph('空白段落 ')
# 添加run对象,参数为text=None和style=None,
# run对象有bold(加粗)和italic(斜体)这两个属性
p.add_run('加粗').bold = True
p.add_run('倾斜.').italic = True
# 添加段落
document.add_heading('标题, 等级一', level=1)
当然,也可以封装一些段落、页眉之类的方法,缩减代码量,基本解题逻辑就是如此,由于代码过长,所以就不一一细述,具体代码可在后台可在订阅号回复“docx处理”,获取相关源码。参阅python docx库的相关文档:https://python-docx.readthedocs.io/en/latest/index.html

我要回帖

更多关于 批量替换多个word的同一内容 的文章

 

随机推荐