1. 导入必要的包
from docx.shared import Cm
from docx import Document
from docx.oxml.ns import qn
from docx.shared import Pt
2. 文档打开,并划分段落,表格
mobanfile=’xxxx.docx’
doc = Document(mobanfile)
para = doc.paragraphs #段落
tb = doc.tables #表格
3. 修改文档中的文字(用实际文字替换#)
year=2023
month=10
day=25
para[2].runs[1].text=para[2].runs[1].text.replace('#',str(year))
para[2].runs[3].text=para[2].runs[3].text.replace('#',str(month))
para[2].runs[5].text=para[2].runs[5].text.replace('#',str(day))
4. 在指定段落添加图片
para[8].add_run('').add_picture(‘xxxx.png’, width=Cm(15))
5. 对表格进行填充
for i in range(2,27):
q1 = tb[0].cell(i,1).paragraphs[0].add_run('{:.1f}'.format(apt_sk_max[i-2]))
q4 = tb[0].cell(i,4).paragraphs[0].add_run(hanzi[i-1])
q1.font.name = '方正仿宋_GBK'
q1.font.size=Pt(10.5)
q4.font.name = '方正仿宋_GBK'
q4._element.rPr.rFonts.set(qn('w:eastAsia'),'方正仿宋_GBK')
q4.font.size=Pt(10.5)
其中,q1填充的为数字,字体可以直接设置,当字体为中文时,需特别设置字体
6. 文件保存
outword1= 'new.docx'
doc.save(outword1)