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

相关文章

Java数字转换工具类NumberUtil的使用

《Java数字转换工具类NumberUtil的使用》NumberUtil是一个功能强大的Java工具类,用于处理数字的各种操作,包括数值运算、格式化、随机数生成和数值判断,下面就来介绍一下Number... 目录一、NumberUtil类概述二、主要功能介绍1. 数值运算2. 格式化3. 数值判断4. 随机

Python创建Excel的4种方式小结

《Python创建Excel的4种方式小结》这篇文章主要为大家详细介绍了Python中创建Excel的4种常见方式,文中的示例代码简洁易懂,具有一定的参考价值,感兴趣的小伙伴可以学习一下... 目录库的安装代码1——pandas代码2——openpyxl代码3——xlsxwriterwww.cppcns.c

使用Navicat工具比对两个数据库所有表结构的差异案例详解

《使用Navicat工具比对两个数据库所有表结构的差异案例详解》:本文主要介绍如何使用Navicat工具对比两个数据库test_old和test_new,并生成相应的DDLSQL语句,以便将te... 目录概要案例一、如图两个数据库test_old和test_new进行比较:二、开始比较总结概要公司存在多

Python给Excel写入数据的四种方法小结

《Python给Excel写入数据的四种方法小结》本文主要介绍了Python给Excel写入数据的四种方法小结,包含openpyxl库、xlsxwriter库、pandas库和win32com库,具有... 目录1. 使用 openpyxl 库2. 使用 xlsxwriter 库3. 使用 pandas 库

Java中基于注解的代码生成工具MapStruct映射使用详解

《Java中基于注解的代码生成工具MapStruct映射使用详解》MapStruct作为一个基于注解的代码生成工具,为我们提供了一种更加优雅、高效的解决方案,本文主要为大家介绍了它的具体使用,感兴趣... 目录介绍优缺点优点缺点核心注解及详细使用语法说明@Mapper@Mapping@Mappings@Co

使用Python在Excel中创建和取消数据分组

《使用Python在Excel中创建和取消数据分组》Excel中的分组是一种通过添加层级结构将相邻行或列组织在一起的功能,当分组完成后,用户可以通过折叠或展开数据组来简化数据视图,这篇博客将介绍如何使... 目录引言使用工具python在Excel中创建行和列分组Python在Excel中创建嵌套分组Pyt

使用Python在Excel中插入、修改、提取和删除超链接

《使用Python在Excel中插入、修改、提取和删除超链接》超链接是Excel中的常用功能,通过点击超链接可以快速跳转到外部网站、本地文件或工作表中的特定单元格,有效提升数据访问的效率和用户体验,这... 目录引言使用工具python在Excel中插入超链接Python修改Excel中的超链接Python

使用Python实现图片和base64转换工具

《使用Python实现图片和base64转换工具》这篇文章主要为大家详细介绍了如何使用Python中的base64模块编写一个工具,可以实现图片和Base64编码之间的转换,感兴趣的小伙伴可以了解下... 简介使用python的base64模块来实现图片和Base64编码之间的转换。可以将图片转换为Bas

如何利用Python实现给Excel表格截图

《如何利用Python实现给Excel表格截图》这篇文章主要为大家详细介绍了如何利用Python实现给Excel表格截图功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 我搜索了网络上的方案,感觉把 Excel 表格转换为 html 再用 platwright 截图是比China编程较顺

使用Java实现一个解析CURL脚本小工具

《使用Java实现一个解析CURL脚本小工具》文章介绍了如何使用Java实现一个解析CURL脚本的工具,该工具可以将CURL脚本中的Header解析为KVMap结构,获取URL路径、请求类型,解析UR... 目录使用示例实现原理具体实现CurlParserUtilCurlEntityICurlHandler