主页 > IT业界  > 

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

用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 = True doc.save(docf)

得到

添加图片 from docx import Document from docx.shared import Inches docf = "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列的cell print(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博客

标签:

用python的python-docx模块读取、修改docx文件并批量替换关键字由讯客互联IT业界栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“用python的python-docx模块读取、修改docx文件并批量替换关键字