当前位置:   article > 正文

python操作word_python3.5 读写word

python3.5 读写word

python操作word

1、需要安装python-docx

pip install python-docx
  • 1

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   # 字体颜色
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

3、操作word

3.1 读取word文件

# Document只能读取docx后缀的文件
document = Document("test.docx")

# 获取word文档中的表格(返回列表)
tables = document.tables

# 获取文档中的段落(返回列表)
par = document.paragraphs

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

3.2 修改段落文字,以及段落样式(风格和大小)

# 先清空文字
document.paragraphs[2].text = ""

# 使用add_run添加文字,之后使用返回的run对象可以修改字体的样式和大小
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'),'仿宋')

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

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")

# 提取表格单元格中的段落,然后就可以使用add_run方法,添加文字,使用run对象修改字体大小和样式
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'), '仿宋')

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

3.4 删除表格或段落

# 删除表格
t = document.tables[0]._element # 获取表格元素
t.getparent().remove(t)  # 删除这个元素

# 删除段落
p = document.paragraphs[6]._element  # 获取段落元素
p.getparent().remove(p)  # 删除这个元素
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

3.5 将document对象保存为docx文档

document.save("测试1.docx")
  • 1

4、模板

4.1 更新表格函数

# ind,第几个表格; x,单元格位置,例如:(1,1);text,更新单元格的文本
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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

4.2 更新文本函数


# ind,第几段段落;text,更新段落的文本
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 # 添加背景色,为黄色
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/661014
推荐阅读
相关标签
  

闽ICP备14008679号