Python 读取 Word 详解(python-docx)

文章目录

  • [1 概述](#1 概述)
    • [1.1 第三方库:python-docx](#1.1 第三方库:python-docx)
  • [2 新建文档](#2 新建文档)
    • [2.1 空白文档](#2.1 空白文档)
    • [2.2 标题](#2.2 标题)
    • [2.3 段落](#2.3 段落)
    • [2.4 文本](#2.4 文本)
    • [2.5 字体](#2.5 字体)
    • [2.6 图片](#2.6 图片)
    • [2.7 表格](#2.7 表格)
  • [3 扩展](#3 扩展)
    • [3.1 修改文档](#3.1 修改文档)
    • [3.2 读取文档](#3.2 读取文档)

1 概述

1.1 第三方库:python-docx

python 复制代码
> pip install python-docx

2 新建文档

2.1 空白文档

python 复制代码
import docx
from docx import document

# 1.新建 文档对象
doc = docx.Document()
# [可选] 代码提示。需增加下列代码
# print(type(doc))
assert isinstance(doc, document.Document)  # 格式:doc, doc 的类型

# 2.保存文档,绝对路径 和 相对路径 均可
# doc.save(r'C:\Users\Administrator\Desktop\test.docx')
doc.save('test.docx')

2.2 标题

python 复制代码
import docx
from docx import document

# 1.新建 文档对象
doc = docx.Document()
# [可选] 代码提示。需增加下列代码
# print(type(doc))
assert isinstance(doc, document.Document)  # 格式:doc, doc 的类型

# 2.添加 标题
# 标题
doc.add_heading(text='Python 操作 Word 教程', level=0)

# 章节标题(Level = 0~9)
doc.add_heading(text='第一章:Python 基础', level=1)
doc.add_heading(text='1.1 Python 基础语法', level=2)

# 3.保存文档
doc.save('test.docx')

效果图:

2.3 段落

python 复制代码
import docx
from docx import document

# 1.新建 文档对象
doc = docx.Document()
# [可选] 代码提示。需增加下列代码
# print(type(doc))
assert isinstance(doc, document.Document)  # 格式:doc, doc 的类型

# 2.添加 文本段落
paragraph = doc.add_paragraph('这是第一个文本段落')
paragraph.insert_paragraph_before("在之前,添加段落")
doc.add_paragraph(text='这是第二个文本段落', style='List Bullet')

# 3.保存文档
doc.save('test.docx')

2.4 文本

python 复制代码
import docx
from docx import document

# 1.新建 文档对象
doc = docx.Document()
# [可选] 代码提示。需增加下列代码
# print(type(doc))
assert isinstance(doc, document.Document)  # 格式:doc, doc 的类型

# 2.添加 文本(同 文本段落)
paragraph = doc.add_paragraph()
run = paragraph.add_run('这是一个文本')

# 3.保存文档
doc.save('test.docx')

2.5 字体

python 复制代码
import docx
from docx import document
from docx.shared import Pt
from docx.shared import RGBColor

# 1.新建 文档对象
doc = docx.Document()
# [可选] 代码提示。需增加下列代码
# print(type(doc))
assert isinstance(doc, document.Document)  # 格式:doc, doc 的类型

# 2.添加 文本(同 文本段落)
paragraph = doc.add_paragraph()
run = paragraph.add_run('这是一个文本')

# 3.设置字体
font = run.font
font.name = '微软雅黑'  # 字体名称
font.size = Pt(12)  # 字体大小
font.color.rgb = RGBColor(255, 0, 0)  # 红色
font.bold = True  # 加粗

# 4.保存文档
doc.save('test.docx')

2.6 图片

python 复制代码
import docx
from docx import document
from docx.shared import Cm

# 1.新建 文档对象
doc = docx.Document()
# [可选] 代码提示。需增加下列代码
# print(type(doc))
assert isinstance(doc, document.Document)  # 格式:doc, doc 的类型

# 2.添加 图片,CM:厘米
doc.add_picture('1.png', width=Cm(10), height=Cm(5))

# 3.保存文档
doc.save('test.docx')

2.7 表格

python 复制代码
import docx
from docx import document

# 1.新建 文档对象
doc = docx.Document()
# [可选] 代码提示。需增加下列代码
# print(type(doc))
assert isinstance(doc, document.Document)  # 格式:doc, doc 的类型

# 2.添加 表格
table = doc.add_table(rows=2, cols=3)

# 获取第一行第二列的单元格,并修改内容
cell = table.cell(0, 0)
cell.text = '我是 A1'

# 输出单元格数据
for row in table.rows:
    for cell in row.cells:
        print(cell.text)

# 3.保存文档
doc.save('test.docx')

3 扩展

3.1 修改文档

python 复制代码
import docx
from docx import document

# 1.创建 文档对象
doc = docx.Document('test.docx')
assert isinstance(doc, document.Document)

# 2.修改 文档(其它同理)
doc.paragraphs[0].text = '修改第一个段落'

# 3.保存 文档
doc.save('test.docx')

3.2 读取文档

python 复制代码
import docx
from docx import document

# 1.创建 文档对象
doc = docx.Document('test.docx')
assert isinstance(doc, document.Document)

# 2.读取 文档
# 段落的文本
for p in doc.paragraphs:
    print(p.text)

# 3.保存 文档
doc.save('test.docx')
相关推荐
SsummerC10 分钟前
【leetcode100】组合总和Ⅳ
数据结构·python·算法·leetcode·动态规划
Tandy12356_17 分钟前
Godot开发2D冒险游戏——第一节:主角登场!
python·游戏引擎·godot
西柚小萌新1 小时前
【Python爬虫基础篇】--4.Selenium入门详细教程
爬虫·python·selenium
橘猫云计算机设计2 小时前
springboot基于hadoop的酷狗音乐爬虫大数据分析可视化系统(源码+lw+部署文档+讲解),源码可白嫖!
数据库·hadoop·spring boot·爬虫·python·数据分析·毕业设计
YOULANSHENGMENG2 小时前
linux 下python 调用c++的动态库的方法
c++·python
SsummerC2 小时前
【leetcode100】零钱兑换Ⅱ
数据结构·python·算法·leetcode·动态规划
一眼青苔3 小时前
切割PDF使用python,库PyPDF2
服务器·python·pdf
电商数据girl3 小时前
产品经理对于电商接口的梳理||电商接口文档梳理与接入
大数据·数据库·python·自动化·产品经理
三道杠卷胡3 小时前
【AI News | 20250424】每日AI进展
人工智能·pytorch·python·语言模型·github
T糖锅G4 小时前
小白自学python第二天
python