Python实现对Word文档中的表格进行读取并转换成Excel表格?

liftword1个月前 (03-23)技术文章14

简单实现

要实现对Word文本中的表格进行读取并转换成Excel表格,你可以使用Python的python-docx库来处理Word文档,以及openpyxl库来处理Excel文件。下面是一个示例代码,演示了如何实现这一功能。

首先,确保你已经安装了所需的库。如果没有按照请按照如下的方式进行安装。

pip install python-docx openpyxl

安装完成之后,就开始编写代码。如下所示,引入需要的文档对象。

from docx import Document
from openpyxl import Workbook

自定义个方法,传入需要转换的文档,以及转换完成之后的文档名称。在这个示例中,我们定义了一个
convert_word_table_to_excel()
函数,该函数接收Word文件的路径和Excel文件的路径作为参数。函数首先打开Word文档,然后遍历文档中的每个表格,并将每个表格中的数据写入到一个新的Excel工作表中。最后,将新的Excel工作表保存为Excel文件。

def convert_word_table_to_excel(word_file, excel_file):
    # 打开Word文档
    doc = Document(word_file)
    # 创建一个新的Excel工作簿
    wb = Workbook()
    # 选择活动的工作表
    ws = wb.active
    
    for table in doc.tables:
        for row in table.rows:
            # 将Word表格中的每一行数据写入Excel中
            excel_row = []
            for cell in row.cells:
                excel_row.append(cell.text)
            ws.append(excel_row)

    # 保存Excel文件
    wb.save(excel_file)

编写测试方法

# 测试
word_file = 'input.docx'  # Word文件路径
excel_file = 'output.xlsx'  # Excel文件路径
convert_word_table_to_excel(word_file, excel_file)
print("转换完成!")

你只需要将word_fileexcel_file变量设置为你实际的Word文件路径和想要保存的Excel文件路径,然后运行代码即可将Word文档中的表格转换成Excel表格。

全量代码

from docx import Document
from openpyxl import Workbook

def convert_word_table_to_excel(word_file, excel_file):
    # 打开Word文档
    doc = Document(word_file)
    # 创建一个新的Excel工作簿
    wb = Workbook()
    # 选择活动的工作表
    ws = wb.active
    
    for table in doc.tables:
        for row in table.rows:
            # 将Word表格中的每一行数据写入Excel中
            excel_row = []
            for cell in row.cells:
                excel_row.append(cell.text)
            ws.append(excel_row)

    # 保存Excel文件
    wb.save(excel_file)

# 测试
word_file = 'input.docx'  # Word文件路径
excel_file = 'output.xlsx'  # Excel文件路径
convert_word_table_to_excel(word_file, excel_file)
print("转换完成!")

将每个表格单独存储到不同的Excel中

如果你希望将每个表格保存成单独的Excel文件,可以对代码稍作修改,如下所示。

from docx import Document
from openpyxl import Workbook

def extract_tables_from_word(word_file_path):
    # 打开Word文档
    doc = Document(word_file_path)
    
    # 遍历Word文档中的每个表格
    for i, table in enumerate(doc.tables):
        # 创建一个新的Excel工作簿
        wb = Workbook()
        ws = wb.active
        
        # 遍历Word表格中的每一行
        for row_idx, row in enumerate(table.rows):
            # 遍历行中的每个单元格
            for col_idx, cell in enumerate(row.cells):
                # 将单元格的文本写入Excel表格中的对应位置
                ws.cell(row=row_idx+1, column=col_idx+1, value=cell.text)
        
        # 删除默认创建的Sheet
        wb.remove(wb['Sheet'])
        
        # 保存Excel文件,以表格索引号命名
        wb.save(f'Table_{i+1}.xlsx')

# 调用函数并指定输入Word文件路径
extract_tables_from_word('input.docx')

这样,每个表格将被保存成单独的Table_1.xlsxTable_2.xlsx等Excel文件。

总结

到这里展示了两种提取Word文档种的表格并且转换到Excel表格中的方式,可以将表格存储到不同的Sheet页,也可以将表格存储到不同的文件中。

相关文章

Python 自动化办公 | 将 Word 表格转为 Excel

优质文章,第一时间送达!大家好,今天有一个公务员的小伙伴委托我给他帮个忙,大概是有这样一份Word(由于涉及文件私密所以文中的具体内容已做修改)一共有近2600条类似格式的表格细栏,每个栏目包括的信息...

十分钟教会你使用Python操作excel,内附步骤和代码

这篇文章主要介绍了python使用openpyxl操作excel的方法步骤,详细的介绍了openpyxl的常用属性以及操作excel的方法,感兴趣的可以了解一下一 前言放大招了,学完这篇openpyx...

Python和Excel已经互通了,还不赶紧来学习一下

Excel是数据分析中最常用的工具,这篇文章将Python与Excel的功能对比介绍如何使用Python通过函数式编程完成Excel中的数据处理及分析工作。在Python中pandas库用于数据处理,...

用Python快速创建N个Excel文件

1.前言在安装好Python的相关环境之后,我们来看看使用Python中的xlwings模块一次性创建多个Excel文件。这个例子只有短短7行代码,却直观展示了Python和Excel“强强联合”给我...

用DeepSeek+Trae 自己写PDF表格转为EXCEL表格

如何将下面PDF表格转为EXCEL能更好统计在TRAE 提问:新建窗口-选择文件夹-写一个PDF转excel 电脑程序:样式不变,界面 有选择文件,有输出文件,显示进度及页码,开始,暂停,退出,实现所...

Python办公革命!零基础也能秒懂的Excel自动化教程

#python##excel##办公##自动化##office#告别手动复制粘贴,3分钟学会用Python操作Excel,效率提升100%!导语你是否还在为Excel中繁琐的数据处理抓狂?每...