python-word驱动之python-docx

安装

docx是一个非标准库,因此需要自行安装,安装过程并不困难,Windows/Mac用户均可以在命令行(CMD)/终端(Terminal)中使用pip安装
注意调用时用的是docx,安装时用的是python-docx

pip install python-docx

前置知识

在这里插入图片描述

Word中一般可以结构化成三个部分:

  • 文档Document
  • 段落Paragraph
  • 文字块Run
    也就是Document - Paragraph - Run三级结构,这是最普遍的情况。其中文字块Run最难理解,并不能完成按照图中所示,两个符号之间的短句是文字块。

通常情况下可以这么理解,但假如这个短句子中有多种不同的样式,则会被划分成多个文字块。

  • 以图中的第一个黄圈为例,如果给这个短句添加一些细节👇
    在这里插入图片描述

此时就有4个文字块

  • 同时有时候一个Word文档中是存在表格的,这时就会新的文档结构产生
    在这里插入图片描述

这时的结构非常类似Excel,可以看成Document - Table - Row/Column - Cell四级结构

读取word

在这里插入图片描述

打开word

from docx import Document
path = r'C:\Users\Administrator\Desktop\yxy.docx'
doc = Document(path)

获取段落/全部段落文本内容

一个word文件由一个或者多个paragraph段落组成

para = doc.paragraphs[0]		#输出第一段落
print(para.text)

for para in doc.paragraphs:		#输出所有段落
    print(para.text)

在这里插入图片描述

获取文字块文本内容

一个paragraph段落由一个或者多个run文字块组成

para = doc.paragraphs[1]		#打开输出第二段落
run = para.runs[3]              #打开第四个文字块
print(run.text)

在这里插入图片描述

获取表格中所有文字

for table in doc.tables:		#输出所有表格
     for row in table.rows:
        for cell in row.cells:
            print(cell.text)

在这里插入图片描述

写入word

创建word

只要不指定路径,就默认创建新word文件

from docx import Document
doc = Document()

保存文件

需要完整的保存路径,默认存到py脚本同文件夹下

doc.save('路径+文件名.docx')

设置文本样式

docx.enum.style.WD_STYLE_TYPE是一个枚举类型,用于指定样式的类型。例如,可以使用WD_STYLE_TYPE.PARAGRAPH来指定一个段落样式。

docx.shared.Pt是一个类,用于表示磅数(point)的大小。在文档处理中,通常使用磅作为字体大小的单位。

docx.enum.text.WD_PARAGRAPH_ALIGNMENT是一个枚举类型,用于指定段落的对齐方式。例如,可以使用WD_PARAGRAPH_ALIGNMENT.CENTER来指定段落居中对齐。其他常用
WD_PARAGRAPH_ALIGNMENT.LEFT:左对齐
WD_PARAGRAPH_ALIGNMENT.RIGHT:右对齐
WD_PARAGRAPH_ALIGNMENT.JUSTIFY:两端对齐
WD_PARAGRAPH_ALIGNMENT.JUSTIFY_LOW:两端对齐,但最后一行左对齐

from docx.enum.style import WD_STYLE_TYPE
from docx.shared import Pt
from docx.enum.text import WD_PARAGRAPH_ALIGNMENT

new_style = doc.styles.add_style('我新建的样式',WD_STYLE_TYPE.PARAGRAPH)

new_style.font.name = 'Arial'
new_style.font.bold = True  # 加粗
new_style.font.italic = True # 斜体
new_style.font.underline = True # 下划线
new_style.font.strike = True # 删除线
new_style.font.shadow = True # 阴影
new_style.font.size = Pt(20) # 字号
new_style.font.color.rgb = RGBColor(255, 0, 0) # 字体颜色


new_style.paragraph_format.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER	#居中

修改标题类型

  • 查看已有的标题类型
for style in doc.styles:
    print(style.name)

在这里插入图片描述

  • 修改标题类型
para = doc.paragraphs[0]
para.style = '我新建的样式'

修改后实例
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值