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')
相关推荐
用户277844910499311 小时前
借助DeepSeek智能生成测试用例:从提示词到Excel表格的全流程实践
人工智能·python
JavaEdge在掘金14 小时前
ssl.SSLCertVerificationError报错解决方案
python
我不会编程55514 小时前
Python Cookbook-5.1 对字典排序
开发语言·数据结构·python
老歌老听老掉牙14 小时前
平面旋转与交线投影夹角计算
python·线性代数·平面·sympy
满怀101515 小时前
Python入门(7):模块
python
无名之逆15 小时前
Rust 开发提效神器:lombok-macros 宏库
服务器·开发语言·前端·数据库·后端·python·rust
你觉得20515 小时前
哈尔滨工业大学DeepSeek公开课:探索大模型原理、技术与应用从GPT到DeepSeek|附视频与讲义下载方法
大数据·人工智能·python·gpt·学习·机器学习·aigc
啊喜拔牙15 小时前
1. hadoop 集群的常用命令
java·大数据·开发语言·python·scala
__lost16 小时前
Pysides6 Python3.10 Qt 画一个时钟
python·qt