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

首先仍然需要在终端窗口内用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程序 | 高治中的个人空间 (xinyixx.com)。这里我介绍另外一种用自己比较习惯的方式进行封装的方法。

首先需要找到模块的安装路径,比如我的是: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可执行文件。

感兴趣的同学可以在pycharm集成环境下尝试,有问题可以在评论区留言。

提取word所有表格信息的程序的更多相关文章

  1. 使用Java POI来选择提取Word文档中的表格信息

    通过使用Java POI来提取Word(1992)文档中的表格信息,其中POI支持不同的ms文档类型,在具体操作中需要注意.本文主要是通过POI来提取微软2003文档中的表格信息,具体code如下(事 ...

  2. 用python读取word文件里的表格信息【华为云技术分享】

    在企查查查询企业信息的时候,得到了一些word文件,里面有些控股企业的数据放在表格里,需要我们将其提取出来. word文件看起来很复杂,不方便进行结构化.实际上,一个word文档中大概有这么几种类型的 ...

  3. 用ABBYY提取文本和表格的方法

    在ABBYY FineReader 12 OCR文字识别软件中,有一个插件ABBYY Screenshot Reader,通常情况下与ABBYY FineReader 12一起安装到计算机中,它是一款 ...

  4. VBA嘘嘘嘘(1)——将Excel数据填入到已存在的Word模板表格(实例应用)

    傻瓜可以写出机器读懂得代码,但写出让人能读懂的代码的是优秀程序员 Sub 填充() Application.ScreenUpdating = False 'ScreenUpdating 是控制你的ex ...

  5. C#通过模板导出Word(文字,表格,图片)

    C#通过模板导出Word(文字,表格,图片)   C#导出Word,Excel的方法有很多,这次因为公司的业务需求,需要导出内容丰富(文字,表格,图片)的报告,以前的方法不好使,所以寻找新的导出方法, ...

  6. Java读取word中表格

    因为要新建一个站,公司要把word表格的部分行列存到数据库中.之前用java操作过excel,本来打算用java从word表格中读取数据,再存到数据库中,结果因为权限不够,无法访问公司要写的那个数据库 ...

  7. 软件工程第三个程序:“WC项目” —— 文件信息统计(Word Count ) 命令行程序

    软件工程第三个程序:“WC项目” —— 文件信息统计(Word Count ) 命令行程序 格式:wc.exe [parameter][filename] 在[parameter]中,用户通过输入参数 ...

  8. Java 提取Word中的文本和图片

    本文将介绍通过Java来提取或读取Word文档中文本和图片的方法.这里提取文本和图片包括同时提取文档正文当中以及页眉.页脚中的的文本和图片. 使用工具:Free Spire.Doc for Java ...

  9. C# 提取Word文档中的图片

    C# 提取Word文档中的图片 图片和文字是word文档中两种最常见的对象,在微软word中,如果我们想要提取出一个文档内的图片,只需要右击图片选择另存为然后命名保存就可以了,今天这篇文章主要是实现使 ...

  10. 用ASP.Net写一个发送ICQ信息的程序

    用ASP.Net写一个发送ICQ信息的程序 这里我给大家提供一个很实用的例子,就是在线发送ICQ信息.想一想我们在网页上直接给朋友发送ICQ信息,那是多么美妙的事情啊.呵呵,在吹牛啊,其实ICQ本来就 ...

随机推荐

  1. JIT 编译后的代码存储位置

    JIT 编译后的代码存储位置 1. 存储位置 JIT 编译后的本地机器代码被存储在 JVM 的 Code Cache(代码缓存区)中. Code Cache 是 JVM 内存的一部分,用于保存 JIT ...

  2. 大模型向量数据库去重的N种实现方案!

    简单来说,"向量"Vector 是大模型(LLM)在搜索时使用的一种"技术手段",通过向量比对,大模型能找出问题的相关答案,并且进行智能回答. 向量简介 Vec ...

  3. 《Deep Learning Inference on Embedded Devices: Fixed-Point vs Posit》(一)

    After the success of performing deep learning inference by using an 8-bit precision representation o ...

  4. Excel导入操作,poi

    导入操作,仅供参考,具体情况具体而论 @Override public ReturnObject inforImport(LogySbjsJdsbqxxxParts entity, HttpServl ...

  5. 一个基于 C# Unity 开发的金庸群侠传 3D 版,直呼牛逼!

    前言 大家应该都知道 Unity 游戏引擎是基于 C# 编程语言开发的,今天大姚给大家分享一个基于 C# Unity 开发的金庸群侠传 3D 版,该游戏真的是勾起了一代人的慢慢回忆. 项目介绍 JYX ...

  6. 一个包含 80+ C#/.NET 编程技巧实战练习开源项目!

    项目介绍 C#/.NET/.NET Core编程常用语法.算法.技巧.中间件.类库.工作业务实操练习集,配套详细的文章教程讲解,助你快速掌握C#/.NET/.NET Core中各种编程常用语法.算法. ...

  7. Typora中markdown文件无法识别行内公式(内联公式)

    行内公式属于LaTeX扩展语法,而不属于Markdown的通用标准.为了使Typora予以解析,需要在Typora的"文件"-"偏好设置"中,勾选"内 ...

  8. Spring注解之@Autowired组件装配

    前言 说起Spring的@Autowired注解,想必大家已经耳熟能详:对于小编而言,虽然一直知道怎么用,但是并没有去了解过,因此,本文就梳理一下@Autowired注解的功能,如有写的不准确的地方, ...

  9. 代码随想录第一天|数组part01

    二分查找 题目建议: 大家今天能把 704.二分查找 彻底掌握就可以,至于 35.搜索插入位置 和 34. 在排序数组中查找元素的第一个和最后一个位置 ,如果有时间就去看一下,没时间可以先不看,二刷的 ...

  10. windows系统部署minio

    下载 在官网下载exe https://dl.min.io/server/minio/release/windows-amd64/ 创建文件夹 把minio.exe放到一个文件夹里,然后同目录里再新建 ...