国产化Word处理控件Spire.Doc教程:Python提取Word文档中的文本、图片、表格等

翻译|使用教程|编辑:吉炜炜|2025-08-04 10:58:15.653|阅读 59 次

概述:本文将详细介绍如何使用 Spire.Doc for Python 库在 Python 中读取 Word 文档(包括 .doc 和 .docx 格式),并演示如何提取文本、图片、表格、批注、列表以及文档的元数据等信息。无论您是进行文档内容抓取、自动化报告生成,还是开发文档解析工具,本教程都将提供清晰的代码示例和实用指导。

# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>

相关链接:

在现代办公场景中,Word文档已成为信息存储与交流的重要载体,承载着关键的业务数据、结构化表格、可视化图表以及协作批注等重要内容。面对日益增长的文档处理需求,传统的人工操作方式已难以满足效率与准确性的双重标准。采用Python实现Word文档内容的自动化解析,不仅能显著提升处理效率、降低人为错误率,还能实现数据集成、内容迁移及智能分析等多种应用。

E-iceblue旗下Spire系列产品是国产文档处理领域的优秀产品,支持国产化,帮助企业高效构建文档处理的应用程序。本文将详细介绍如何使用 Spire.Doc for Python 在 Python 中读取 Word 文档(包括 .doc 和 .docx 格式),并演示如何提取文本、图片、表格、批注、列表以及文档的元数据等信息。无论您是进行文档内容抓取、自动化报告生成,还是开发文档解析工具,本教程都将提供清晰的代码示例和实用指导。

Spire.Doc for Python试用下载

获取更多信息请咨询慧都在线客服  ;技术交流Q群(125237868

为什么使用 Python 读取 Word 文档?

Python 作为一门灵活且功能强大的编程语言,广泛应用于自动化、数据处理及内容分析等领域。使用 Python 读取 Word 文档,可以实现以下重要应用:

  • 批量提取数据:从报告、合同、简历等文档中快速抓取关键信息,无需手工复制粘贴。
  • 结构化内容解析:将文本、表格和图片等内容整理成数据库或分析模型,便于后续处理。
  • 自动化工作流集成:将 Word 文档读取功能嵌入到 Web 服务、API 或后台系统,实现端到端自动化。
  • 支持多格式文档处理:同时兼容现代 .docx 和传统 .doc 文件,保证业务场景的全面覆盖。

安装 Python Word 文档解析库

要在 Python 中读取 Word 文档,首先需要安装支持 .doc 和 .docx 格式的解析库。Spire.Doc for Python 是一款功能完善且独立于 Microsoft Office 的第三方库,支持提取文本、图片、表格、批注、列表及元数据等多种内容。

通过以下命令即可安装 Spire.Doc:

pip install Spire.Doc

安装完成后,即可在 Python 代码中导入并使用 Spire.Doc 进行 Word 文档的读取和处理。

使用 Python 读取 Word 文档中文本

提取文本是解析 Word 文档的基础需求。根据不同场景,你可能需要获取整篇文档的全部文本,或仅针对特定节、段落进行读取。

获取整个文档的文本

在文档管理系统中,提取全文文本有助于建立搜索索引,使用户能够通过关键词快速定位文档内容,从而提升查询效率和使用体验。

Spire.Doc 提供了 Document.GetText() 方法,可一次性提取 Word 文档中的所有文字信息,涵盖正文、表格及列表等内容。

以下示例展示了如何加载 Word 文档,获取全文文本,并将其保存为独立的文本文件,便于后续处理与分析:

from spire.doc import *

# 创建Document对象
doc = Document()

# 加载Word文档
doc.LoadFromFile("示例.docx")

# 获取文档所有文本
text = doc.GetText()

# 保存获取的文本为TXT文件
with open("output/提取文本.txt", "w", encoding="utf-8") as file:
file.write(text)

document.Close()

获取特定节或段落的文本

在许多结构化文档(如报告、合同或说明书)中,内容通常被划分为多个节或段落。若只需提取文档中某一部分的文本信息,可以直接访问指定节,并逐段读取内容,实现更具针对性的处理。

以下示例展示了如何访问 Word 文档中的指定节,并提取其中所有段落的文本内容:

from spire.doc import *

# 加载 .docx 或 .doc 文件
document = Document()
document.LoadFromFile("示例.docx")

# 访问指定节
section = document.Sections[0]

# 获取该节段落文本
with open("output/节文本.txt", "w", encoding="utf-8") as file:
    for paragraph in section.Paragraphs:
        file.write(paragraph.Text + "\n")

document.Close()

使用 Python 读取 Word 文档中的特定元素

除了纯文本,Word 文档中还可能包含图片、表格、批注、列表及元数据等多种元素。Spire.Doc 提供丰富且便捷的接口,帮助开发者高效地提取这些内容,实现对文档结构和数据的全面访问。

提取图片

Word 文档中常包含图片元素,例如公司 Logo、插图、图表等。若需提取这些图片以便进行分析、存档或再利用,可通过遍历文档结构并识别图片对象(DocPicture)来实现。

以下是提取 Word 文档中所有图片并将其保存为本地文件的完整示例:

import queue
from spire.doc import *

# 创建Document对象
doc = Document()

# 加载Word文件
doc.LoadFromFile("示例.docx")

# 创建队列对象
nodes = queue.Queue()
nodes.put(doc)

# 创建列表
images = []

while nodes.qsize() > 0:
    node = nodes.get()

    # 遍历文档中的子对象
    for i in range(node.ChildObjects.Count):
        child = node.ChildObjects.get_Item(i)

        # 判断子对象是否为图片
        if child.DocumentObjectType == DocumentObjectType.Picture:
            picture = child if isinstance(child, DocPicture) else None
            dataBytes = picture.ImageBytes

            # 将图片数据添加到列表中
            images.append(dataBytes)
         
        elif isinstance(child, ICompositeObject):
            nodes.put(child if isinstance(child, ICompositeObject) else None)

# 遍历列表中的图片
for i, item in enumerate(images):
    fileName = "图片-{}.png".format(i)
    with open("output/Images/"+fileName,'wb') as imageFile:

        # 将图片写入指定路径
        imageFile.write(item)
doc.Close()

获取表格数据

在 Word 文档中,表格常用于组织结构化数据,如报表或物品清单。使用 Spire.Doc,开发者可以遍历文档中的所有表格,访问表格中的每个单元格,并提取单元格的内容。

以下代码展示了如何提取Word文档中所有表格的数据,并将结果保存为文本文件:

from spire.doc import *
import os

# 加载 Word 文档
document = Document()
document.LoadFromFile("示例.docx")

# 指定输出文件夹存在
output_dir = "output/Tables"
os.makedirs(output_dir, exist_ok=True)

# 遍历所有节并提取表格数据
for s in range(document.Sections.Count):
    section = document.Sections[s]
    tables = section.Tables

    for i in range(tables.Count):
        table = tables[i]
        table_data = ""

        for j in range(table.Rows.Count):
            row = table.Rows[j]

            for k in range(row.Cells.Count):
                cell = row.Cells[k]
                cell_text = ""

                for p in range(cell.Paragraphs.Count):
                    para_text = cell.Paragraphs[p].Text
                    cell_text += para_text + " "

                table_data += cell_text.strip()
                if k < row.Cells.Count - 1:
                    table_data += "\t"
            table_data += "\n"

        # 将提取的表格数据写入文本文件
        output_path = os.path.join(output_dir, f"Word表格_{s+1}_{i+1}.txt")
        with open(output_path, "w", encoding="utf-8") as output_file:
            output_file.write(table_data)

document.Close()

读取列表

Word 文档中的项目列表(如编号列表和项目符号列表)常用于展示条款、步骤或要点等结构化内容。借助 Spire.Doc,开发者可以轻松识别并提取文档中的列表。

以下代码示例展示了如何加载 Word 文件,查找所有列表项,并将项目编号(如数字或符号)和其对应的文本内容写入本地文本文件:

from spire.doc import *

# 加载 Word 文档
document = Document()
document.LoadFromFile("示例.docx")

# 创建文本文件,用于存放列表内容
with open("output/列表内容.txt", "w", encoding="utf-8") as output_file:
    # 遍历文档中的节
    for s in range(document.Sections.Count):
        section = document.Sections[s]
        # 遍历节中的段落
        for p in range(section.Paragraphs.Count):
            paragraph = section.Paragraphs[p]
            # 找到列表,提取其内容并保存至文本文件
            if paragraph.ListFormat.ListType != ListType.NoList:
                output_file.write(paragraph.ListText + paragraph.Text + "\n")

document.Close()

提取批注

Word 支持添加批注,用于提供修改建议或评论。通过访问 Comments 集合,可以获取文档中所有批注的信息,包括批注作者和具体内容,便于实现审阅流程的自动化管理。

以下代码展示了如何提取所有批注,包括批注作者与内容,并保存到文本文件中:

from spire.doc import *

# 加载 Word 文档
document = Document()
document.LoadFromFile("示例.docx")

# 创建文本文件,用于存放批注内容
with open("output/批注内容.txt", "w", encoding="utf-8") as output_file:
    # 遍历文档中的所有批注,获取每个批注的作者和内容
    for i in range(document.Comments.Count):
        comment = document.Comments[i]
        output_file.write(f"批注 {i + 1}:\n")
        output_file.write(f"作者:{comment.Format.Author}\n")

        comment_text = ""
        for j in range(comment.Body.Paragraphs.Count):
            paragraph = comment.Body.Paragraphs[j]
            comment_text += paragraph.Text + "\n"

        output_file.write(f"内容: {comment_text.strip()}\n\n")

document.Close()

获取元数据(文档属性)

Word 文档通常包含作者、标题、主题、关键字等元数据信息,这些数据保存在文档的 BuiltinDocumentProperties 属性中。提取这些属性有助于文档的归档管理、分类整理以及搜索优化。

以下示例代码展示了如何读取 Word 文档的标题、作者、主题等属性,并将其保存到本地文本文件:

from spire.doc import *

# 加载 Word 文档
document = Document()
document.LoadFromFile("示例.docx")

# 获取文档属性
props = document.BuiltinDocumentProperties

# 将文档属性信息写入到本地文本文件
with open("output/元数据.txt", "w", encoding="utf-8") as output_file:
    output_file.write(f"标题: {props.Title}\n")
    output_file.write(f"作者: {props.Author}\n")
output_file.write(f"主题: {props.Subject}\n")

document.Close()

总结

使用 Python 读取 Word 文档,不仅能够显著提升文档处理效率,还能实现数据提取与自动化工作的深度集成。通过 Spire.Doc for Python,开发者可以轻松完成 .doc 和 .docx 文件中的文本提取、表格读取、图片导出、批注解析、列表识别以及元数据获取等多种常见操作。

除了读取内容,Spire.Doc 还支持创建和编辑 Word 文档、设置样式格式、插入图片、执行文档合并,以及将 Word 转换为 PDF和图片等格式,满足从读取到输出的全流程需求,适用于报告生成、合同解析、批量文档处理等多种业务场景。

常见问题解答

Q1:Python 如何读取 Word(.doc/.docx)文档内容?

A1:可以使用 Spire.Doc for Python 来读取 Word 文件。该库支持加载 .doc 和 .docx 格式,并提取文档中的文本、图片、表格、批注等内容。

Q2:使用 Spire.Doc for Python 是否需要安装 Microsoft Office?
A2:不需要。Spire.Doc 是一款独立运行的 Word 处理库,无需安装 Microsoft Word 或 Office ,即可在 Python 项目中实现 Word 文件的读取与编辑功能。

Q3:除了读取 Word 内容,Spire.Doc 是否支持写入和生成 Word 文件?
A3:支持。Spire.Doc for Python 不仅可以读取 Word 文档内容,还支持以编程方式创建、编辑和保存 Word 文件。用户可以添加段落、设置样式、插入图片和表格,甚至将 Word 转换为 PDF 或图片格式,满足多样化的文档生成需求。


————————————————————————————————————————

关于慧都科技:

慧都科技是一家行业数字化解决方案公司,长期专注于软件、油气与制造行业。公司基于深入的业务理解与管理洞察,以系统化的业务建模驱动技术落地,帮助企业实现智能化运营与长期竞争优势。在软件工程领域,我们提供开发控件、研发管理、代码开发、部署运维等软件开发全链路所需的产品,提供正版授权采购、技术选型、个性化维保等服务,帮助客户实现技术合规、降本增效与风险可控。慧都科技E-iceblue的官方授权代理商,提供E-iceblue系列产品免费试用,咨询,正版销售等于一体的专业化服务E-iceblue旗下Spire系列产品是国产文档处理领域的优秀产品,支持国产化,帮助企业高效构建文档处理的应用程序。

欢迎下载|体验更多E-iceblue产品

获取更多信息请咨询慧都在线客服  ;技术交流Q群(125237868



标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@evget.com

文章转载自:慧都网

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
相关产品
Spire.Doc for .NET

Spire.Doc for .NET 是一款专门对 Word 文档进行操作的 .NET 类库。

Spire.DocViewer for .NET

强大的Word查看器,可以轻松实现Word文档显示、转换、交互

Spire.Doc for WPF

Spire.Doc for WPF 是一款在WPF平台上操作的MS Word组件,可以轻松并专业地访问大量各种不同的word文档处理任务。

Spire.Doc for Silverlight

Spire.Doc for Silverlight是一款在Silverlight平台上操作的MS Word组件,让用户可以执行基本的文字处理任务。

Spire.DocViewer for WPF

Spire.DocViewer for WPF是一款独立的Word查看器WPF组件。

title
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP