安装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博客