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

相关文章

Python实现Excel批量样式修改器(附完整代码)

《Python实现Excel批量样式修改器(附完整代码)》这篇文章主要为大家详细介绍了如何使用Python实现一个Excel批量样式修改器,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一... 目录前言功能特性核心功能界面特性系统要求安装说明使用指南基本操作流程高级功能技术实现核心技术栈关键函

Python实现批量CSV转Excel的高性能处理方案

《Python实现批量CSV转Excel的高性能处理方案》在日常办公中,我们经常需要将CSV格式的数据转换为Excel文件,本文将介绍一个基于Python的高性能解决方案,感兴趣的小伙伴可以跟随小编一... 目录一、场景需求二、技术方案三、核心代码四、批量处理方案五、性能优化六、使用示例完整代码七、小结一、

Python实战之SEO优化自动化工具开发指南

《Python实战之SEO优化自动化工具开发指南》在数字化营销时代,搜索引擎优化(SEO)已成为网站获取流量的重要手段,本文将带您使用Python开发一套完整的SEO自动化工具,需要的可以了解下... 目录前言项目概述技术栈选择核心模块实现1. 关键词研究模块2. 网站技术seo检测模块3. 内容优化分析模

C#使用Spire.XLS快速生成多表格Excel文件

《C#使用Spire.XLS快速生成多表格Excel文件》在日常开发中,我们经常需要将业务数据导出为结构清晰的Excel文件,本文将手把手教你使用Spire.XLS这个强大的.NET组件,只需几行C#... 目录一、Spire.XLS核心优势清单1.1 性能碾压:从3秒到0.5秒的质变1.2 批量操作的优雅

MySQL慢查询工具的使用小结

《MySQL慢查询工具的使用小结》使用MySQL的慢查询工具可以帮助开发者识别和优化性能不佳的SQL查询,本文就来介绍一下MySQL的慢查询工具,具有一定的参考价值,感兴趣的可以了解一下... 目录一、启用慢查询日志1.1 编辑mysql配置文件1.2 重启MySQL服务二、配置动态参数(可选)三、分析慢查

基于Python实现进阶版PDF合并/拆分工具

《基于Python实现进阶版PDF合并/拆分工具》在数字化时代,PDF文件已成为日常工作和学习中不可或缺的一部分,本文将详细介绍一款简单易用的PDF工具,帮助用户轻松完成PDF文件的合并与拆分操作... 目录工具概述环境准备界面说明合并PDF文件拆分PDF文件高级技巧常见问题完整源代码总结在数字化时代,PD

Python按照24个实用大方向精选的上千种工具库汇总整理

《Python按照24个实用大方向精选的上千种工具库汇总整理》本文整理了Python生态中近千个库,涵盖数据处理、图像处理、网络开发、Web框架、人工智能、科学计算、GUI工具、测试框架、环境管理等多... 目录1、数据处理文本处理特殊文本处理html/XML 解析文件处理配置文件处理文档相关日志管理日期和

使用Python开发一个Ditto剪贴板数据导出工具

《使用Python开发一个Ditto剪贴板数据导出工具》在日常工作中,我们经常需要处理大量的剪贴板数据,下面将介绍如何使用Python的wxPython库开发一个图形化工具,实现从Ditto数据库中读... 目录前言运行结果项目需求分析技术选型核心功能实现1. Ditto数据库结构分析2. 数据库自动定位3

Python进行JSON和Excel文件转换处理指南

《Python进行JSON和Excel文件转换处理指南》在数据交换与系统集成中,JSON与Excel是两种极为常见的数据格式,本文将介绍如何使用Python实现将JSON转换为格式化的Excel文件,... 目录将 jsON 导入为格式化 Excel将 Excel 导出为结构化 JSON处理嵌套 JSON:

Python使用openpyxl读取Excel的操作详解

《Python使用openpyxl读取Excel的操作详解》本文介绍了使用Python的openpyxl库进行Excel文件的创建、读写、数据操作、工作簿与工作表管理,包括创建工作簿、加载工作簿、操作... 目录1 概述1.1 图示1.2 安装第三方库2 工作簿 workbook2.1 创建:Workboo