欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 会展 > 用python的python-docx模块读取、修改docx文件并批量替换关键字

用python的python-docx模块读取、修改docx文件并批量替换关键字

2025/2/21 3:30:17 来源:https://blog.csdn.net/weixin_46676149/article/details/145665048  浏览:    关键词:用python的python-docx模块读取、修改docx文件并批量替换关键字

安装python-docx

打开命令提示符窗口,输入

pip install python-docx

出现以下界面表示安装成功
在这里插入图片描述

添加文本

每个document包含多个paragraph,每个paragraph有多个run,每个run包含有:text文本,font字体,color颜色,字号
添加文本

# 打开新的文件,添加文本并保存
from docx import Document docf = "D:\\python\\new.docx" doc = Document()
#添加一个标题
doc.add_heading('这是标题',level=1)
#添加一个段落
p = doc.add_paragraph('这是一个段落')
#段落中添加一个run
p.add_run('这是同一段落中的另一行文本。')
#保存
doc.save(docf)

得到
在这里插入图片描述

设置文本粗体、斜体

#改变run的样式
#加粗
from docx import Document 
docf = "D:\\python\\new.docx" doc = Document()
#添加一个段落
p = doc.add_paragraph('这是一个段落')
#加粗
run = p.add_run('这是粗体')
run.bold = True
#或者p.add_run("这是粗体").bold = True#斜体
p2 = doc.add_paragraph('这是一个段落')
run = p2.add_run('这是斜体')
run.italic = True
#或者p2.add_run("我是斜体文字块").italic = Truedoc.save(docf)

得到
在这里插入图片描述

添加图片

from docx import Document 
from docx.shared import Inchesdocf = "D:\\python\\new.docx" 
doc = Document(docf)
doc.add_picture('d:\\python\\image.png', width=Inches(3.0))  # 图片宽度设置为3英寸
doc.save(docf)

添加表格

from docx import Document 
docf = "D:\\python\\new.docx" 
doc = Document(docf)table = doc.add_table(rows=2, cols=3) #添加2行3列表格
hdr_cells = table.rows[0].cells #获取第一行所有cell
hdr_cells[0].text = '列 1' #cell设置文本
hdr_cells[1].text = '列 2'
hdr_cells[2].text = '列 3'
row_cells = table.rows[1].cells
row_cells[0].text = '行 1, 列 1'
row_cells[1].text = '行 1, 列 2'
row_cells[2].text = '行 1, 列 3'
doc.save(docf)

读取文本

读取所有run中的文本

from docx import Document 
docf = "D:\\python\\new.docx" 
doc = Document(docf)for p in doc.paragraphs:for r in p.runs:print(r.text)

修改文本

from docx import Document 
docf = "D:\\python\\new.docx" 
doc = Document(docf)doc.paragraphs[0].runs[0].text="新文本"#修改第1个段落第1个run的文本
doc.save(docf)

读取修改表格

在Document中,所有表格保存在doc.tables中
获取表格单元格的值

from docx import Document 
docf = "D:\\python\\new2.docx" #有表格的docx文件
doc = Document(docf)
table = doc.tables[0] #第1个表格
rowcell = table.row_cells(0) #第1行的所有cell
cell = rowcell[0] #第1行第1列的cellprint(cell.text) #输出cell的值
cell.text = "新值" #修改cell的值doc.save(docf)

保留格式替换文本的内容

模板为,讲关键字 “姓名” 替换为 需要填写的姓名
在这里插入图片描述

from docx import Document docf = "D:\\python\\jiangzhuang.docx" doc = Document(docf)#分别输出对应三个名字的文件
names=['小明','小红','张强'] 
for name in names:doc = Document(docf)for p in doc.paragraphs:for r in p.runs:if r.text == '姓名':r.text = r.text.replace(r.text,name)doc.save("D:\\python\\" +name+".docx")

得到3个文件
在这里插入图片描述
姓名被替换为小红
在这里插入图片描述
保留了原有的格式
更多有关格式和关键字识别参考python-docx实现保留原格式的批量替换_python docx 替换-CSDN博客

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词