python程序26:写一个提取word所有表格的程序

工作上的需要,自己须提取一个大型word内所有表格至每个excel中,这里我在之前的文章中提及到关于python处理excel和word的模块,参考我这一篇文章:python程序13:一个从excel提取数据的程序 | 高治中的个人空间 (xinyixx.com)

和之前一样,如果没有相应模块的话需要手动用pip install导入相对于的模块。

下面是程序源码,关键的中文注释已列出:

import os
import docx
import openpyxl
from tkinter import filedialog
from tkinter import Tk

# 选择要处理的Word文件
root = Tk()
root.withdraw()
docx_path = filedialog.askopenfilename(filetypes=[('Word文档', '*.docx')])

# 选择导出Excel文件的路径
root = Tk()
root.withdraw()
excel_folder = filedialog.askdirectory()

# 创建Excel文件夹
if not os.path.exists(excel_folder):
    os.makedirs(excel_folder)

# 打开Word文件
doc = docx.Document(docx_path)

# 遍历Word文件中的表格
for table in doc.tables:
    # 获取表格前一行的文本作为Excel文件名
    table_name = table.rows[0].cells[0].text.strip()

    # 创建新的Excel文件并打开工作簿
    wb = openpyxl.Workbook()
    ws = wb.active

    # 将表格数据复制到Excel工作表中
    for i, row in enumerate(table.rows):
        for j, cell in enumerate(row.cells):
            cell_text = cell.text.strip()
            ws.cell(row=i+1, column=j+1, value=cell_text)

    # 保存Excel文件
    excel_path = os.path.join(excel_folder, f'{table_name}.xlsx')
    wb.save(excel_path)

我们在pycharm里同时按ctrl+shift+F10,运行测试一下。

调用了windows的系统模块,可以自由选择某一路径下的word格式文档,这里我选择了某一计算书,然后点击打开。随后弹出选择输出的文件夹,可以在窗口内直接新建一个,这里我新建了名字为13的文件夹,

选择后程序就执行完毕将word内的所有表格导出到13的文件夹内了。

这就得到了自己需要的表格信息,如果对你有所帮助,自己可以用源码在本地试试。

发表回复