python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > Python Word转Excel

Python多场景下实现Word转Excel详解

作者:SunnyDays1011

在实际工作中,我们经常需要把 Word 文档(DOC 或 DOCX)转换成 Excel 文件,本文将探讨如何使用 Python 实现 Word 转 Excel并涵盖多种转换场景,感兴趣的小伙伴可以了解下

在实际工作中,我们经常需要把 Word 文档(DOC 或 DOCX)转换成 Excel 文件。这类需求常出现在报告生成、数据提取等场景。Word 里的文本、段落或表格内容往往需要被迁移到 Excel 中,以便后续进一步分析、筛选或统计。

相比 Word,Excel 天生更适合处理数据。将数据放入 Excel,你就可以更方便地进行排序、筛选、校验以及数据分析。因此,把 Word 转成 Excel,往往不仅是格式转换,更是数据处理链路中的关键一步。

本文将探讨如何使用 Python 实现 Word 转 Excel,并涵盖多种转换场景,包括:

什么时候需要把 Word 转换为 Excel?

如果你正好遇到以下情况,那么把 Word 转成 Excel 基本就是最好的选择:

安装 Python Word 转 Excel 库

要在 Python 中实现 Word 文档转 Excel,首先需要安装支持读取 Word 文档并导出为 Excel 的库。本文所使用的是 Spire.Doc for Python,与 python-docx 相比,它提供了直接的 API,可以直接转换 Word 文件或将其内容导出为 Excel 格式,而不需要逐个遍历元素并导出。同时它不需要在运行环境中安装 Microsoft Word 或 Excel。

在开始之前,使用以下命令从PyPI安装该库:

pip install spire.doc

注意:确保你的 Python 版本为 3.7 或更高版本以保证兼容性。

使用 Python 将 Word 文档转换为 Excel

要将整个 Word 文档转换为 Excel,只需使用 Document.LoadFromFile 方法加载文档,然后调用 Document.SaveToFile 方法将其保存为 Excel 格式。

以下示例演示了如何将一个 Word DOCX文件转换为 Excel 表格。如果你想处理 DOC 文件,只需相应地调整文件名后缀。

from spire.doc import Document, FileFormat

# 定义输入和输出文件路径
input_file = "input.docx"
output_file = "output.xlsx"

# 创建Document实例并加载Word文件
doc = Document()
doc.LoadFromFile(input_file)

# 将加载的Word文档保存为Excel文件
doc.SaveToFile(output_file, FileFormat.XLSX)

# 关闭文档
doc.Close()

该方法会将整个文档内容,包括文本、表格、图片和格式等,转换为一个 Excel 工作簿。它适用于结构较清晰、混合内容较少、表格和文本布局相对规范的文档,例如发票。

使用 Python 将 Word 的指定页面转换为 Excel

有时,只有 Word 文档中的某些页面包含相关数据。此时,你可以提取这些特定页面,然后将其导出为Excel,而不需要转换整个文件。

实现过程非常简单:

  1. 使用 Document.LoadFromFile 加载 Word文 档。
  2. 使用 Document.ExtractPages 提取所需的页面或页面范围。
  3. 将提取的内容保存为 Excel 文件。

以下示例展示了如何提取并转换 Word 文档的第一页为 Excel:

from spire.doc import Document, FileFormat

# 加载Word文档
doc = Document()
doc.LoadFromFile("input.docx")

# 提取第一页(页面索引从0开始)
page = doc.ExtractPages(0, 1)

# 将提取的页面保存为Excel文件
page.SaveToFile("output.xlsx", FileFormat.XLSX)

# 关闭文档
doc.Close()
page.Close()

此方法适合处理大型文档,特别是当只有一部分页面包含表格或结构化数据时。你可以通过修改 ExtractPages 方法中的 startPageIndex(起始页索引)和 pageCount(需要提取的页面的数量)参数来提取你所需的页面。

使用 Python 将 Word 中的表格导出为 Excel

在实际应用中,多数 Word 文档都是各种内容混合在一起,比如包含多个段落、列表和表格等。很多时候,我们只需要将表格导出到Excel。

在这种情况下,转换整个文档会引入很多不必要的内容。更有针对性的方法是,仅提取Word文档中的表格并将其导出为独立的 Excel 工作表。操作步骤如下:

  1. 遍历文档中的各个节。
  2. 遍历每个节中的表格。
  3. 克隆每个表格。
  4. 将每个克隆的表格放入一个新文档的不同节中 (如果放入同一个节,则所有表格将会被放入同一个 Excel 工作表)。
  5. 将结果文档保存为 Excel 文件。

以下示例演示了如何使用 Python 导出 Word 文档中的表格为 Excel:

from spire.doc import Document, FileFormat

# 加载Word文档
doc = Document()
doc.LoadFromFile("input.docx")

# 创建一个新的Document对象来存储表格
tables_doc = Document()

# 获取文档的节数
section_count = doc.Sections.Count

# 遍历每个节
section_index = 0
while section_index < section_count:
    section = doc.Sections[section_index]
    
    # 获取当前节中的表格数
    table_count = section.Tables.Count
    
    # 遍历每个表格
    table_index = 0
    while table_index < table_count:
        table = section.Tables[table_index]
        
        # 为表格添加一个新的节
        new_section = tables_doc.AddSection()
        # 克隆表格并将其添加到新节
        new_section.Tables.Add(table.Clone())
        
        table_index += 1

    section_index += 1

# 将仅包含表格的文档保存为Excel文件
tables_doc.SaveToFile("tables_only.xlsx", FileFormat.XLSX)

# 关闭文档
doc.Close()
tables_doc.Close()

在生成的 Excel 文件中,每个表格会被放置在一个单独的工作表中,使得数据处理更加便捷,避免了将表格和无关的文本混合在一起。

使用 Python 将加密的 Word 文档转换为 Excel

如果你的 Word 文档是加密的,可以在加载文件时提供密码。加载完成后,转换过程与普通文档一样。

以下示例展示了如何使用 Python 将加密的 Word 文档转换为 Excel:

from spire.doc import Document, FileFormat

# 加载密码保护的Word文档
doc = Document()
doc.LoadFromFile("input.docx", FileFormat.Docx, "password")

# 将文档保存为Excel文件
doc.SaveToFile("output.xlsx", FileFormat.XLSX)

# 释放资源
doc.Dispose()

注意确保密码正确,否则文档将无法加载和转换。

注意事项

在将 Word 转换为 Excel 时,请记住以下几点:

总结

将 Word 转换为 Excel,是一种把文档内容转化为结构化数据的实用方法。在本文中,我们展示了如何使用 Python:

最终你可以根据自己的文档结构与目标需求,选择最合适的转换策略。

Word 转 Excel 常见问题

1. 将 Word 转换为 Excel 时能否保留格式?

基本的表格结构和文本格式会保留。然而,复杂的布局可能需要在转换后进行一些小的调整。

2. 转换 Word 为 Excel 时,图片会保留吗?

会。嵌入 Word 表格中图片通常会在 Excel 中保留。转换后,可根据需要手动调整图片使其适配 Excel 单元格。

3. 可以一次转换多个 Word 文档为 Excel 吗?

可以。使用循环遍历多个 Word 文件,即可将它们一次性转换为 Excel。

4. 转换 Word 为 Excel 时需要 Microsoft Office 吗?

不需要。你可以在没有安装 Word 或 Excel 的情况下,使用 Python 程序直接将 Word 文档转换为 Excel。

5. 可以将 Word 文档的特定部分(如某些页面或表格)转换为 Excel 吗?

可以。你可以从 Word 文档提取特定的表格或页面转换为 Excel,这样可以更好地控制转换内容。

6. 可以将加密的 Word 文档转换为 Excel 吗?

可以。你可以在加载时提供正确的密码来解锁受保护的 Word 文档,然后将其转换为 Excel。

到此这篇关于Python多场景下实现Word转Excel详解的文章就介绍到这了,更多相关Python Word转Excel内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文