前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >别再问我Python怎么操作Word了!

别再问我Python怎么操作Word了!

作者头像
刘早起
发布2020-09-23 18:21:47
1.3K0
发布2020-09-23 18:21:47
举报
文章被收录于专栏:早起Python

前言

在之前的自动化系列文章中,我们分别讲解过?Python操作Excel利器openpyxl,也讲过?Python操作PDF的几种方式,今天我们将通过代码讲解Python操作Word文档docx的常用方法。

安装

docx是一个非标准库,需要在命令行(终端)中使用pip即可安装

代码语言:javascript
复制
pip install python-docx

一定要注意,安装的时候是python-docx而实际调用时均为docx!

前置知识

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

  • 文档Document
  • 段落Paragraph
  • 文字块Run

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

通常情况下可以这么理解,但假如这个短句子中有多种不同的 样式,则会被划分成多个文字块,以图中的第一个黄圈为例,如果给这个短句添加一些细节?

此时就有4个文字块,同时有时候一个Word文档中是存在表格的,这时就会新的文档结构产生

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

Word读取

1.打开Word
代码语言:javascript
复制
from docx import Document
path = ...
wordfile = Document(path)
2. 获取段落

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

代码语言:javascript
复制
paragraphs = wordfile.paragraphs 
print(paragraphs)
3. 获取段落文本内容

.text获取文本

代码语言:javascript
复制
for paragraph in wordfile.paragraphs: 
    print(paragraph.text)
4. 获取文字块文本内容

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

代码语言:javascript
复制
for paragraph in wordfile.paragraphs: 
    for run in paragraph.runs: 
        print(run.text)
5. 遍历表格

上面的操作完成的经典三级结构的遍历,遍历表格非常类似

代码语言:javascript
复制
# 按行遍历
for table in wordfile.tables:
    for row in table.rows:
        for cell in row.cells:
            print(cell.text)
       
# 按列遍历     
for table in wordfile.tables:
    for column in table.columns:
        for cell in column.cells:
            print(cell.text)

写入Word

1. 创建Word

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

代码语言:javascript
复制
from docx import Document
wordfile = Document() 
2. 保存文件

对文档的修改和创建都切记保存

代码语言:javascript
复制
wordfile.save(...)
... 放需要保存的路径
3. 添加标题

wordfile.add_heading(…, level=…)

4. 添加段落

wordfile.add_paragraph(...)

代码语言:javascript
复制
wordfile = Document() 
wordfile.add_heading('一级标题', level=1) 
wordfile.add_paragraph('新的段落')
5. 添加文字块

wordfile.add_run(...)

6. 添加分页

wordfile.add_page_break(...)

7. 添加图片

wordfile.add_picture(..., width=…, height=…)

设置样式

1. 文字字体设置
2.文字其他样式设置
代码语言:javascript
复制
from docx import Document
from docx.shared import RGBColor, Pt

wordfile = Document(file)
for paragraph in wordfile.paragraphs:
    for run in paragraph.runs:
        
        run.font.bold = True  # 加粗 
        run.font.italic = True # 斜体 
        run.font.underline = True # 下划线 
        run.font.strike = True # 删除线 
        run.font.shadow = True # 阴影 
        run.font.size = Pt(20) # 字号 
        run.font.color.rgb = RGBColor(255, 0, 0) # 字体颜色
3. 段落样式设置

默认对齐方式是左对齐,可以自行修改

小结

以上就是如何用Python中的docx模块实现Word中的常用操作,只要明白什么类型的操作可以用Python执行,并能在之后遇到繁琐的任务时想到使用Python即可,以下是几个利用该模块实现办公自动化的案例,希望能够对你有所帮助:

本文为公众号早起Python专栏作者陈熹原创,转载请后台联系,未经授权的任何形式转载均视为侵权!

-END-

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-09-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 早起Python 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 安装
  • 前置知识
  • Word读取
    • 1.打开Word
      • 2. 获取段落
        • 3. 获取段落文本内容
          • 4. 获取文字块文本内容
            • 5. 遍历表格
            • 写入Word
              • 1. 创建Word
                • 2. 保存文件
                  • 3. 添加标题
                    • 4. 添加段落
                      • 5. 添加文字块
                        • 6. 添加分页
                          • 7. 添加图片
                          • 设置样式
                            • 1. 文字字体设置
                              • 2.文字其他样式设置
                                • 3. 段落样式设置
                                • 小结
                                领券
                                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档