python操作word
1、需要安装python-docx
库
pip install python-docx
2、导入相关包
from docx import Document
from docx.oxml.ns import qn
from docx.shared import Pt
from docx.enum.table import WD_TABLE_ALIGNMENT
from docx.enum.text import WD_COLOR_INDEX
from docx.shared import RGBColor
3、操作word
3.1 读取word文件
document = Document("test.docx")
tables = document.tables
par = document.paragraphs
3.2 修改段落文字,以及段落样式(风格和大小)
document.paragraphs[2].text = ""
run = document.paragraphs[2].add_run("2021年11月22日")
run.font.name = '仿宋'
run.font.size = Pt(16)
run.font.element.rPr.rFonts.set(qn('w:eastAsia'),'仿宋')
3.3 修改表格的中的内容
for table in document.tables:
for row in table.rows:
row_str = '\\t'.join([cell.text for cell in row.cells])
print(row_str,end="\\n\\n")
par = tables[0].cell(0,1).paragraphs[0]
par.paragraph_format.alignment = WD_TABLE_ALIGNMENT.CENTER
run = par.add_run("测试")
run.font.name = '仿宋'
run.font.size = Pt(12)
r = run._element
r.rPr.rFonts.set(qn('w:eastAsia'), '仿宋')
3.4 删除表格或段落
t = document.tables[0]._element
t.getparent().remove(t)
p = document.paragraphs[6]._element
p.getparent().remove(p)
3.5 将document对象保存为docx文档
document.save("测试1.docx")
4、模板
4.1 更新表格函数
def set_table(ind, x, text):
document.tables[ind].cell(x[0], x[1]).value = ""
par = document.tables[ind].cell(x[0], x[1]).paragraphs[0]
run = par.add_run(text)
run.font.name = '仿宋'
run.font.size = Pt(16)
r = run._element
r.rPr.rFonts.set(qn('w:eastAsia'), '仿宋')
run.font.color.rgb = RGBColor(0, 137, 62)
run.font.highlight_color = WD_COLOR_INDEX.YELLOW
run.bold = True
4.2 更新文本函数
def set_text(ind, text):
document.paragraphs[ind].text = ""
run = document.paragraphs[ind].add_run(text)
run.font.name = '仿宋'
run.font.size = Pt(16)
run.font.element.rPr.rFonts.set(qn('w:eastAsia'), '仿宋')
run.font.highlight_color = WD_COLOR_INDEX.YELLOW