Python实现快速提取Word表格并写入Excel

 更新时间:2024年12月19日 11:43:55   作者:Sitin涛哥  
在日常办公中,常常会遇到需要从Word文档中提取表格内容,并将其写入Excel表格的需求,下面我们就来看看如何使用Python实现快速提取Word表格并写入Excel吧

在日常办公中,常常会遇到需要从Word文档中提取表格内容,并将其写入Excel表格的需求。通过使用Python编程语言,我们可以高效地完成这一任务。本文将详细介绍如何使用Python提取Word文档表格内容并写入Excel,提供完整的代码示例。

一、环境准备

在开始编写代码之前,我们需要安装一些Python库来处理Word和Excel文档。主要使用到的库有python-docx和openpyxl。

1. 安装python-docx库

python-docx库用于读取和操作Word文档。使用以下命令安装:

pip install python-docx

2. 安装openpyxl库

openpyxl库用于读取和写入Excel文件。使用以下命令安装:

pip install openpyxl

二、读取Word文档中的表格

首先,需要编写代码来读取Word文档中的表格内容。以下是一个示例代码,用于从Word文档中提取所有表格内容并打印出来。

示例代码:

from docx import Document

def read_word_tables(file_path):
    doc = Document(file_path)
    tables = doc.tables
    data = []
    for table in tables:
        table_data = []
        for row in table.rows:
            row_data = []
            for cell in row.cells:
                row_data.append(cell.text)
            table_data.append(row_data)
        data.append(table_data)
    return data

​​​​​​​# 示例用法
word_file = 'example.docx'
tables = read_word_tables(word_file)
for i, table in enumerate(tables):
    print(f"Table {i+1}:")
    for row in table:
        print("\t".join(row))

在这个示例中,read_word_tables函数接受一个Word文件的路径,返回一个包含所有表格内容的列表。每个表格内容以二维列表的形式存储,其中每个子列表代表一行,每个子列表中的元素代表一个单元格的内容。

三、将表格内容写入Excel

将提取的表格内容写入Excel文件。以下是一个示例代码,用于将表格内容写入Excel文件。

示例代码:

from openpyxl import Workbook

def write_to_excel(file_path, tables):
    wb = Workbook()
    ws = wb.active

    for table in tables:
        for row in table:
            ws.append(row)
        ws.append([])  # 添加一个空行,分隔不同的表格

    wb.save(file_path)

# 示例用法
excel_file = 'output.xlsx'
write_to_excel(excel_file, tables)

在这个示例中,write_to_excel函数接受一个Excel文件的路径和表格内容列表,将表格内容写入Excel文件。使用openpyxl库的Workbook对象创建一个新的工作簿,并通过ws.append方法将每行数据添加到工作表中。

四、完整示例:从Word提取表格并写入Excel

将上述步骤结合起来,编写一个完整的示例代码,从Word文档中提取表格内容并写入Excel文件。

示例代码:

from docx import Document
from openpyxl import Workbook

def read_word_tables(file_path):
    doc = Document(file_path)
    tables = doc.tables
    data = []
    for table in tables:
        table_data = []
        for row in table.rows:
            row_data = []
            for cell in row.cells:
                row_data.append(cell.text)
            table_data.append(row_data)
        data.append(table_data)
    return data

def write_to_excel(file_path, tables):
    wb = Workbook()
    ws = wb.active

    for table in tables:
        for row in table:
            ws.append(row)
        ws.append([])  # 添加一个空行,分隔不同的表格

    wb.save(file_path)

# 示例用法
word_file = 'example.docx'
excel_file = 'output.xlsx'
tables = read_word_tables(word_file)
write_to_excel(excel_file, tables)

print(f"已成功将Word文档中的表格内容提取并写入Excel文件:{excel_file}")

实际应用中的考虑事项

在实际应用中,处理Word文档和Excel文件时可能会遇到一些特殊情况和问题。

1. 处理复杂表格

Word文档中的表格可能具有复杂的结构,例如合并单元格、嵌套表格等。处理这些复杂表格时,需要额外的代码逻辑来处理这些特殊情况。

2. 表格数据清洗

从Word文档提取的表格数据可能包含一些多余的空格或换行符。在写入Excel之前,可以对数据进行清洗,以确保数据的整洁和一致性。

3. 大文件处理

对于包含大量表格的大型Word文档或需要写入大量数据的Excel文件,可能需要考虑内存和性能问题。可以采用分批读取和写入的方式来处理大文件。

示例代码:

import re
from docx import Document
from openpyxl import Workbook

def clean_text(text):
    # 去除多余的空格和换行符
    return re.sub(r'\s+', ' ', text).strip()

def read_word_tables(file_path):
    doc = Document(file_path)
    tables = doc.tables
    data = []
    for table in tables:
        table_data = []
        for row in table.rows:
            row_data = []
            for cell in row.cells:
                row_data.append(clean_text(cell.text))
            table_data.append(row_data)
        data.append(table_data)
    return data

def write_to_excel(file_path, tables):
    wb = Workbook()
    ws = wb.active

    for table in tables:
        for row in table:
            ws.append(row)
        ws.append([])  # 添加一个空行,分隔不同的表格

    wb.save(file_path)

# 示例用法
word_file = 'example.docx'
excel_file = 'output.xlsx'
tables = read_word_tables(word_file)
write_to_excel(excel_file, tables)

print(f"已成功将Word文档中的表格内容提取并写入Excel文件:{excel_file}")

总结

本文详细介绍了如何使用Python从Word文档中提取表格内容并写入Excel文件。通过使用python-docx库读取Word文档,openpyxl库写入Excel文件,我们可以高效地完成这一任务。此外,本文还介绍了实际应用中的一些考虑事项和解决方案。

以上就是Python实现快速提取Word表格并写入Excel的详细内容,更多关于Python快速提取Word的资料请关注脚本之家其它相关文章!

相关文章

  • Python异步发送日志到远程服务器详情

    Python异步发送日志到远程服务器详情

    这篇文章主要介绍了Python异步发送日志到远程服务器详情,文章通过简单输出到cmd和文件中的代码展开详情,需要的朋友可以参考一下
    2022-07-07
  • Python三行代码实现将Markdown转换为Word/PDF

    Python三行代码实现将Markdown转换为Word/PDF

    Markdown 作为一种标记性文本,具有易编辑、轻量化和高兼容性等特点,被广泛应用于技术文档,本文将使用Python实现将Markdown 转换为 Word 和 PDF,感兴趣的小伙伴可以了解下
    2025-11-11
  • pytorch下tensorboard的使用程序示例

    pytorch下tensorboard的使用程序示例

    我们都知道tensorflow框架可以使用tensorboard这一高级的可视化的工具,这篇文章主要介绍了pytorch下tensorboard的使用,需要的朋友可以参考下
    2021-10-10
  • 详解Python 4.0 预计推出的新功能

    详解Python 4.0 预计推出的新功能

    这篇文章主要介绍了详解Python 4.0 预计推出的新功能,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-07-07
  • Python写安全小工具之TCP全连接端口扫描器

    Python写安全小工具之TCP全连接端口扫描器

    这篇文章主要介绍了Python写安全小工具之TCP全连接端口扫描器,文章通过TCP connect来实现一个TCP全连接端口扫描器。具有一定的参考价值,需要的小伙伴可以参考一下
    2022-05-05
  • Django中使用ModelForm生成HTML标签的方法步骤

    Django中使用ModelForm生成HTML标签的方法步骤

    在 Django 中,使用 ModelForm 来生成 HTML 表单标签是一种常见且高效的做法,本文主要介绍了Django中使用ModelForm生成HTML标签的方法步骤,感兴趣的可以了解一下
    2024-01-01
  • Django xadmin安装及使用详解

    Django xadmin安装及使用详解

    这篇文章主要介绍了Django xadmin安装及使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-10-10
  • pandas创建DataFrame对象失败的解决方法

    pandas创建DataFrame对象失败的解决方法

    本文主要介绍了pandas创建DataFrame对象失败的解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-01-01
  • python中的selenium入门超详细教程

    python中的selenium入门超详细教程

    这篇文章主要介绍了python中的selenium入门超详细教程,本文是在python环境下使用selenium,使用浏览器是Chrome,系统是win10系统,需要的朋友可以参考下
    2023-11-11
  • 用pandas中的DataFrame时选取行或列的方法

    用pandas中的DataFrame时选取行或列的方法

    今天小编就为大家分享一篇用pandas中的DataFrame时选取行或列的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-07-07

最新评论