Excel数据检索省力小工具(文末附源码)

2024-01-23 12:36

本文主要是介绍Excel数据检索省力小工具(文末附源码),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Excel数据检索省力小工具(文末附源码)

引言

​ 相信很多人都是用过VLOOKUP函数来检索和处理Excel数据。比如教师查看班级学生成绩表,想单独检索某个科目、某个学生,某一分数段(80~90分数段内的成绩);或者会计/财务想要统计某个薪资段内的工资等等。因此,Excel数据检索的使用场景和需求都非常迫切和可观。

01、VLOOKUP函数

VLOOKUP函数是Microsoft Excel中常用的查找函数之一,用于在一个指定的数据范围内查找某个特定值,并返回该值所在行或列的相关信息。以下是关于VLOOKUP函数的详细介绍:

语法:

=VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup])
  • lookup_value: 要查找的值,即要在数据范围中查找的目标值。
  • table_array: 包含要进行查找的数据范围,通常是一个表格或区域。
  • col_index_num: 指定要返回的值所在的列号。列号是相对于table_array的起始列的位置。
  • [range_lookup]: 可选参数,用于指定查找方式。如果为TRUE(或省略),则进行近似匹配(查找范围内最接近的值)。如果为FALSE,执行精确匹配(仅返回完全匹配的值)。

示例:

=VLOOKUP(A2, B2:E10, 3, FALSE)

在这个例子中,函数将查找单元格A2中的值在B2:E10范围内,返回该值所在行的第3列的内容。FALSE表示进行精确匹配。

注意事项:

  1. lookup_value必须位于第一列。
  2. 如果查找的值不存在,VLOOKUP将返回错误值#N/A。
  3. 在使用VLOOKUP函数时,确保数据范围是有序的,以获得正确的结果。

VLOOKUP函数在处理大量数据建立关联性时非常有用,例如在表格中查找员工编号并返回相应的姓名或查找产品代码并返回价格等。

02、工具介绍

在这里插入图片描述

​ 上图实现了一个使用PythonTkinter GUI库创建的Excel关键词检索小工具。它可以让用户选择一个Excel文件,并输入要搜索的关键词和要添加的底色。程序将遍历Excel文件中的每个单元格,如果它们包含了关键词,就会将底色设置为用户选择的颜色。最后,程序将Excel文件保存,并提示用户操作完成。

源代码如下:
import openpyxl
from tkinter import *
from tkinter import messagebox, simpledialog, filedialog
from openpyxl.styles import PatternFill# 创建颜色映射字典
color_mapping = {'白色': 'FFFFFFFF','红色': 'FFFF0000','绿色': 'FF00FF00','黄色': 'FFFFFF00','洋红色': 'FFFF00FF','深绿色': 'FF006400','深黄色': 'FF808000','深青色': 'FF008080',
}# 创建弹出窗口
root = Tk()
root.title("Excel关键词检索小工具")
root.geometry("300x200")
root.resizable(False, False)# Excel文件路径
excel_path = StringVar()
excel_path.set("未选择文件")def select_excel_file():# 弹出文件选择对话框file_path = filedialog.askopenfilename(filetypes=[("Excel Files", "*.xlsx")])if file_path:excel_path.set(file_path)# 选择Excel文件按钮和文件路径标签
frame = Frame(root)
frame.pack(pady=10)
Button(frame, text="选择Excel文件", command=select_excel_file).pack(side=LEFT, padx=10)
Label(frame, textvariable=excel_path).pack(side=LEFT)# 关键词输入框和底色选择框放在同一行
input_frame = Frame(root)
input_frame.pack()# 关键词输入框
Label(input_frame, text="关键词组检索:").pack(side=LEFT)
search_text = Entry(input_frame)
search_text.pack(side=LEFT, padx=5)# 颜色选择框和提示标签放在同一行
color_frame = Frame(root)
color_frame.pack(pady=5)# 颜色选择框
Label(color_frame, text="底色:").pack(side=LEFT)
colors = list(color_mapping.keys())
color_var = StringVar()
color_var.set(colors[0])
color_menu = OptionMenu(color_frame, color_var, *colors)
color_menu.pack(side=LEFT, padx=5)# 提示标签
tip_label = Label(color_frame, text="(默认为白色)")
tip_label.pack(side=LEFT)def search_and_fill():# 获取用户选择的Excel文件路径file_path = excel_path.get()if not file_path:messagebox.showerror("错误", "请选择Excel文件")returntry:# 打开Excel文件wb = openpyxl.load_workbook(file_path)ws = wb.active# 获取用户输入的关键词和底色选择keyword = search_text.get()# 获取用户选择的底色color = color_var.get()# 检查是否选择了底色,如果未选择,将color_code设置为Nonecolor_code = color_mapping[color]# 遍历每一个单元格,如果其包含关键词,则添加底色for row in ws.iter_rows():for cell in row:if keyword in str(cell.value):if color_code is not None:fill = PatternFill(start_color=color_code, end_color=color_code, fill_type='solid')cell.fill = fillelse:cell.fill = None# 保存Excel文件wb.save(file_path)# 提示用户操作完成messagebox.showinfo("完成", "单元格颜色已更新")except Exception as e:messagebox.showerror("错误", str(e))# 确认按钮
Button(root, text="确定", command=search_and_fill).pack(pady=10)# 将弹出窗口置于屏幕中心
windowWidth = root.winfo_reqwidth()
windowHeight = root.winfo_reqheight()
positionRight = int(root.winfo_screenwidth() / 2 - windowWidth / 2)
positionDown = int(root.winfo_screenheight() / 2 - windowHeight / 2)
root.geometry("+{}+{}".format(positionRight, positionDown))# 运行窗口循环
root.mainloop()

03、使用说明

在这里插入图片描述

​ 上述示例用户选择了本地桌面的Excel文件,对ARE关键词进行检索,同时选择将检索到的关键词单元格底色设置为想要的颜色,直观地反映意向操作数据,默认色系为白色,同时用户可以将其他底色的单元格设置为白色而实现底色清除的功能。

运行效果如下:

在这里插入图片描述

代码功能介绍:

以下是对代码功能的总结:

  1. 导入库:
    • 使用import openpyxl导入Openpyxl库,用于处理Excel文件。
    • 使用from tkinter import *导入Tkinter库的所有模块,包括messageboxsimpledialogfiledialog
  2. 颜色映射字典:
    • 创建了一个颜色映射字典color_mapping,将颜色的中文名映射为十六进制表示。
  3. 创建主窗口:
    • 使用Tkinter创建了一个主窗口,设置了窗口标题、大小和不可调整大小。
  4. 文件选择功能:
    • 创建了一个按钮和标签,用于选择Excel文件。
    • 使用filedialog.askopenfilename弹出文件选择对话框,获取用户选择的Excel文件路径。
  5. 关键词和底色输入框:
    • 创建了关键词输入框和底色选择框,用于用户输入关键词和选择底色。
  6. 搜索和填充功能:
    • 创建了一个按钮,点击后触发搜索和填充功能。
    • 打开用户选择的Excel文件,遍历每个单元格,查找包含关键词的单元格,然后根据用户选择的底色添加相应的填充。
  7. 保存并提示:
    • 保存修改后的Excel文件。
    • 弹出消息框提示用户操作完成或报告错误信息。
  8. 窗口居中:
    • 将弹出窗口置于屏幕中心。
  9. 窗口循环:
    • 使用root.mainloop()启动Tkinter窗口循环,使窗口保持运行状态。
      件,遍历每个单元格,查找包含关键词的单元格,然后根据用户选择的底色添加相应的填充。
  10. 保存并提示:
    • 保存修改后的Excel文件。
    • 弹出消息框提示用户操作完成或报告错误信息。
  11. 窗口居中:
    • 将弹出窗口置于屏幕中心。
  12. 窗口循环:
    • 使用root.mainloop()启动Tkinter窗口循环,使窗口保持运行状态。
      总体而言,这个小工具允许用户选择一个Excel文件,输入关键词和选择底色,然后在文件中查找包含关键词的单元格并进行底色填充。

这篇关于Excel数据检索省力小工具(文末附源码)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/636432

相关文章

SQLite3命令行工具最佳实践指南

《SQLite3命令行工具最佳实践指南》SQLite3是轻量级嵌入式数据库,无需服务器支持,具备ACID事务与跨平台特性,适用于小型项目和学习,sqlite3.exe作为命令行工具,支持SQL执行、数... 目录1. SQLite3简介和特点2. sqlite3.exe使用概述2.1 sqlite3.exe

基于Python实现一个Windows Tree命令工具

《基于Python实现一个WindowsTree命令工具》今天想要在Windows平台的CMD命令终端窗口中使用像Linux下的tree命令,打印一下目录结构层级树,然而还真有tree命令,但是发现... 目录引言实现代码使用说明可用选项示例用法功能特点添加到环境变量方法一:创建批处理文件并添加到PATH1

使用jenv工具管理多个JDK版本的方法步骤

《使用jenv工具管理多个JDK版本的方法步骤》jenv是一个开源的Java环境管理工具,旨在帮助开发者在同一台机器上轻松管理和切换多个Java版本,:本文主要介绍使用jenv工具管理多个JD... 目录一、jenv到底是干啥的?二、jenv的核心功能(一)管理多个Java版本(二)支持插件扩展(三)环境隔

Python使用smtplib库开发一个邮件自动发送工具

《Python使用smtplib库开发一个邮件自动发送工具》在现代软件开发中,自动化邮件发送是一个非常实用的功能,无论是系统通知、营销邮件、还是日常工作报告,Python的smtplib库都能帮助我们... 目录代码实现与知识点解析1. 导入必要的库2. 配置邮件服务器参数3. 创建邮件发送类4. 实现邮件

C#实现将Office文档(Word/Excel/PDF/PPT)转为Markdown格式

《C#实现将Office文档(Word/Excel/PDF/PPT)转为Markdown格式》Markdown凭借简洁的语法、优良的可读性,以及对版本控制系统的高度兼容性,逐渐成为最受欢迎的文档格式... 目录为什么要将文档转换为 Markdown 格式使用工具将 Word 文档转换为 Markdown(.

CnPlugin是PL/SQL Developer工具插件使用教程

《CnPlugin是PL/SQLDeveloper工具插件使用教程》:本文主要介绍CnPlugin是PL/SQLDeveloper工具插件使用教程,具有很好的参考价值,希望对大家有所帮助,如有错... 目录PL/SQL Developer工具插件使用安装拷贝文件配置总结PL/SQL Developer工具插

Python使用FFmpeg实现高效音频格式转换工具

《Python使用FFmpeg实现高效音频格式转换工具》在数字音频处理领域,音频格式转换是一项基础但至关重要的功能,本文主要为大家介绍了Python如何使用FFmpeg实现强大功能的图形化音频转换工具... 目录概述功能详解软件效果展示主界面布局转换过程截图完成提示开发步骤详解1. 环境准备2. 项目功能结

Linux系统之stress-ng测压工具的使用

《Linux系统之stress-ng测压工具的使用》:本文主要介绍Linux系统之stress-ng测压工具的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、理论1.stress工具简介与安装2.语法及参数3.具体安装二、实验1.运行8 cpu, 4 fo

Maven项目中集成数据库文档生成工具的操作步骤

《Maven项目中集成数据库文档生成工具的操作步骤》在Maven项目中,可以通过集成数据库文档生成工具来自动生成数据库文档,本文为大家整理了使用screw-maven-plugin(推荐)的完... 目录1. 添加插件配置到 pom.XML2. 配置数据库信息3. 执行生成命令4. 高级配置选项5. 注意事

使用C#删除Excel表格中的重复行数据的代码详解

《使用C#删除Excel表格中的重复行数据的代码详解》重复行是指在Excel表格中完全相同的多行数据,删除这些重复行至关重要,因为它们不仅会干扰数据分析,还可能导致错误的决策和结论,所以本文给大家介绍... 目录简介使用工具C# 删除Excel工作表中的重复行语法工作原理实现代码C# 删除指定Excel单元