python操作word

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只能读取docx后缀的文件
document = Document("test.docx")

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

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

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'),'仿宋')

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'), '仿宋')

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 更新表格函数

# 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

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 # 添加背景色,为黄色
  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

努力生活的黄先生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值