使用Python开发提取word所有表格信息的程序

 更新时间:2025年07月18日 08:40:18   作者:心一信息  
这篇文章主要为大家详细介绍了如何使用Python开发一个可以提取word所有表格信息的程序,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下

需要写个批量提取表格信息的程序,来对这么多的表格进行数据的提取。

首先仍然需要在终端窗口内用pip install引入模块。

以下是实现批量提取表格信息的程序源码:

import os
import openpyxl
from tkinter import *
from tkinter import filedialog

# 定义UI界面
class App:
    def __init__(self, master):
        self.master = master
        master.title('Excel内容查找器')
        master.geometry('350x600')

        # 创建文件夹选择按钮
        self.folder_button = Button(master, text='选择文件夹', command=self.select_folder)
        self.folder_button.pack()

        # 创建查找内容输入框和按钮
        self.search_label = Label(master, text='请输入要查找的内容:')
        self.search_label.pack()

        # 创建20个文本框,用于输入需要查找的内容
        self.search_entries = []
        for i in range(20):
            search_entry = Entry(master)
            search_entry.pack()
            self.search_entries.append(search_entry)

        # 创建导出路径输入框和按钮
        self.export_label = Label(master, text='请选择导出路径:')
        self.export_label.pack()
        self.export_entry = Entry(master)
        self.export_entry.pack()
        self.export_button = Button(master, text='选择路径', command=self.select_export_path)
        self.export_button.pack()

        # 创建开始查找按钮
        self.search_button = Button(master, text='开始查找', command=self.search)
        self.search_button.pack()

        # 创建状态栏
        self.status_label = Label(master, text='')
        self.status_label.pack()

    # 选择文件夹
    def select_folder(self):
        self.folder_path = filedialog.askdirectory()
        self.status_label.config(text=f'已选择文件夹:{self.folder_path}')

    # 选择导出路径
    def select_export_path(self):
        export_path = filedialog.asksaveasfilename(defaultextension='.xlsx')
        self.export_entry.delete(0, END)
        self.export_entry.insert(END, export_path)

    # 查找指定内容
    def search(self):
        # 获取要查找的内容列表
        search_texts = [entry.get().strip() for entry in self.search_entries if entry.get().strip()]

        if not search_texts:
            self.status_label.config(text='请至少输入一个要查找的内容')
            return

        # 获取导出路径
        export_path = self.export_entry.get().strip()
        if not export_path:
            self.status_label.config(text='请选择导出路径')
            return

        # 创建新的Excel文件
        export_wb = openpyxl.Workbook()
        export_ws = export_wb.active

        # 遍历文件夹内的所有Excel文件
        for filename in os.listdir(self.folder_path):
            if filename.endswith('.xlsx'):
                # 打开Excel文件
                filepath = os.path.join(self.folder_path, filename)
                wb = openpyxl.load_workbook(filepath)

                # 遍历Excel文件中的所有工作表
                for sheetname in wb.sheetnames:
                    ws = wb[sheetname]

                    # 遍历工作表中的所有单元格
                    for row in ws.iter_rows():
                        for cell in row:
                            for search_text in search_texts:
                                if search_text in str(cell.value):
                                    # 如果找到指定内容,提取所需内容和紧随其后的表格数据
                                    extract_data(wb, sheetname, cell.row, filepath, search_text, export_ws)

        # 保存并关闭新的Excel文件
        export_wb.save(export_path)
        export_wb.close()

        self.status_label.config(text='查找完成')

# 提取所需内容和紧随其后的表格数据
def extract_data(wb, sheetname, row, filepath, search_text, export_ws):
    ws = wb[sheetname]

    # 提取所需内容
    data = [search_text]
    for col in range(1, ws.max_column + 1):
        data.append(ws.cell(row=row, column=col).value)

    # 将数据写入新的Excel文件
    export_ws.append(data)

# 创建UI界面并运行程序
root = Tk()
app = App(root)
root.mainloop()

直接运行测试一下,得到下面长宽为350×600的UI界面:

选择文件夹为可以选择自己存放多个excel的文件夹,比如我这里选择之前生成的名为13的文件夹:

然后选择输出路径,并命名一个输出的excel文件名称,如下图。

然后在这个基础上在文本框内输入需要查找的内容,这里我默认写了可查找内容为12,其实可以写入更多,通过修改源代码可以实现:

最后点击开始查找,最下方提示信息会提示查找完成就说明已经找到自己需要的信息并提取到excel中。

我们打开excel查看一下得到的excel信息:

通过这个程序就不需要自己再这么多表格内一个一个查找自己需要的内容了,既费时而且不准确。

最后再讲一下将python源码封装成的步骤,在python程序1中我有介绍用pyinstaller封装的方法:教大家写一个python的交互式.exe程序 。这里我介绍另外一种用自己比较习惯的方式进行封装的方法。

首先需要找到模块的安装路径,比如我的是:C:\Users\杨东旭\PycharmProjects\pythonProject7\venv\Scripts 将上面的源码拷贝到此路径下:

在pycharm中使用pip命令安装cx_Freeze,在命令行中输入以下命令:pip install cx_Freeze

在Scripts 文件夹中创建一个名为setup.py的文件,下面是源码

import sys
from cx_Freeze import setup, Executable

build_exe_options = {"packages": ["os"], "excludes": ["tkinter"]}

base = None
if sys.platform == "win32":
    base = "Win32GUI"

setup(
    name="程序名称",
    version="1.0",
    description="My Application Description",
    options={"build_exe": build_exe_options},
    executables=[Executable("你的源码.py名称.py", base=base)]
)

注意这里的 程序名称 和 你的源码.py名称 更改为自己对应的程序和文件名

最后在..\pythonProject7\venv\Scripts 路径下执行:python setup.py build

会得到build名称的文件夹,里面就有.exe可执行文件。

到此这篇关于使用Python开发提取word所有表格信息的程序的文章就介绍到这了,更多相关Python提取word表格信息内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python中的collections集合与typing数据类型模块

    Python中的collections集合与typing数据类型模块

    这篇文章介绍了Python中的collections集合与typing数据类型模块,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-05-05
  • python 音频和视频合并自动裁剪

    python 音频和视频合并自动裁剪

    本文主要介绍了python 音频和视频合并自动裁剪,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-06-06
  • Python脚本实现音频和视频格式转换

    Python脚本实现音频和视频格式转换

    这篇文章主要为大家详细介绍了Python如何通过脚本实现音频和视频格式转换,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2025-03-03
  • Python中try except语句及实际应用详细解释

    Python中try except语句及实际应用详细解释

    在Python中try和except是用于异常处理的关键字,它们可以捕获程序运行时可能出现的错误,从而避免程序崩溃,这篇文章主要介绍了Python中try except语句及实际应用的相关资料,需要的朋友可以参考下
    2025-04-04
  • Python编程实现tail-n查看日志文件的方法

    Python编程实现tail-n查看日志文件的方法

    这篇文章主要介绍了Python编程实现tail-n查看日志文件的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07
  • python实现两个经纬度点之间的距离和方位角的方法

    python实现两个经纬度点之间的距离和方位角的方法

    今天小编就为大家分享一篇python实现两个经纬度点之间的距离和方位角的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-07-07
  • 详解Python中列表数据的保存与读取

    详解Python中列表数据的保存与读取

    列表是一种非常灵活的数据结构,它可以包含多种类型的元素,本文将介绍如何将一组列表保存到txt文件中,并提供相应的读取方法,希望对大家有所帮助
    2024-04-04
  • python使用tcp传输图片数据

    python使用tcp传输图片数据

    这篇文章主要为大家详细介绍了python使用tcp传输图片数据,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-06-06
  • 解决django跨域的问题小结(Hbuilder X)

    解决django跨域的问题小结(Hbuilder X)

    使用Django开发时,可能会遇到跨域问题,尤其是当后端与HbuilderX开发的前端结合使用时,解决此问题的关键步骤包括安装django-cors-headers库,并在Django的settings.py中进行相应配置,本文给大家介绍解决django跨域的问题小结,感兴趣的朋友一起看看吧
    2024-10-10
  • django和vue实现数据交互的方法

    django和vue实现数据交互的方法

    今天小编就为大家分享一篇django和vue实现数据交互的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-08-08

最新评论