Python轻松实现查找高亮Excel指定数据

 更新时间:2025年11月04日 08:19:02   作者:咕白m625  
在日常工作中,Excel表格无疑是我们处理数据最常用的工具之一,本文将深入探讨如何利用 Free Spire.XLS for Python 免费库完成这一任务,让你的数据处理工作效率倍增,希望对大家有所帮助

在日常工作中,Excel表格无疑是我们处理数据最常用的工具之一。无论是销售报表、客户清单,还是项目进度,海量的行与列常常让人望而却步。当我们需要从这些庞杂的数据中,快速定位并标记出关键信息时,手动查找、复制、粘贴、填充颜色这一系列操作不仅效率低下,更容易因疏忽而导致错误。

而通过 Python,结合强大的 Excel 操作库,能够轻松实现 Excel 数据的自动化查找与高亮。本文将深入探讨如何利用 Free Spire.XLS for Python 免费库完成这一任务,让你的数据处理工作效率倍增。

免费库安装与使用

Free Spire.XLS for Python是一个易于使用的 Python 库,它允许开发者在不依赖 Microsoft Office 的情况下,创建、读取、编辑和转换 Excel 文件。它支持多种 Excel 格式,包括 XLS、XLSX、CSV 等,并提供了丰富的API,可以满足各种复杂的Excel处理需求。

安装方法:

使用 pip 安装非常简单:

pip install Spire.XLS.Free

安装完成后,导入必要的模块即可开始编码:

from spire.xls import *
from spire.common import *

实现步骤:查找并高亮指定数据

我们以一个实际场景为例:假设有一份销售数据 Excel(sales_data.xlsx),需要查找所有包含 "华东区" 的单元格,并将其背景色设置为黄色、字体加粗,突出显示。

步骤 1:加载 Excel 文件并获取目标工作表

首先用 Workbook 类加载文件,然后通过索引获取需要处理的工作表(这里以第一个工作表为例):

# 创建Workbook对象
workbook = Workbook()
# 加载Excel文件
workbook.LoadFromFile("sales_data.xlsx")

# 获取第一个工作表(索引从0开始)
worksheet = workbook.Worksheets[0]

步骤 2:查找目标数据

接下来需要查找工作表中包含指定数据的所有单元格,然后为查找到的单元格设置高亮背景色

# 查找指定数据
cellRanges = sheet.FindAllString("华东区", False, True)

步骤 3:设置高亮样式

遍历查找到的目标单元格,通过CellRange.Style属性设置样式。这里我们设置:

  • • 背景色:黄色
  • • 字体:加粗、黑色(增强对比度)
# 遍历查找到的单元格
for cellRange in cellRanges:
    # 设置背景色为黄色
    cellRange.Style.Color = Color.get_LightYellow()
     # 设置字体加粗
    cellRange.Style.Font.IsBold = True
    # 可选:设置字体颜色(默认黑色,可改为深红增强突出)
    # cell.Style.Font.Color = Color.Red

步骤 4:保存修改后的文件

最后将处理后的 Excel 文件保存到本地(建议另存为新文件,避免覆盖原文件):

# 保存文件(支持xlsx、xls等格式)
workbook.SaveToFile("FindHighlight.xlsx")
# 释放资源
workbook.Dispose()

核心方法:FindAllString

相比手动遍历单元格,FindAllString方法的优势在于:

  • 更简洁:一行代码完成所有目标数据的查找,无需嵌套循环
  • 更高效率:底层优化的查找逻辑,处理大型 Excel 时速度更快
  • 更灵活:支持区分大小写、精确 / 模糊匹配等参数配置

扩展场景

同时高亮多个关键词

只需多次调用FindAllString并复用高亮逻辑:

# 定义需要查找的关键词列表
keywords = ["华东区", "A产品"]

# 遍历关键词,逐个查找并高亮
for keyword in keywords:
    cellRanges = sheet.FindAllString(keyword, False, True)
    for cellRange in cellRanges:
        cellRange.Style.Color = Color.get_LightYellow()  # 统一用浅黄色

批量查找Excel数据

这个任务用Python和openpyxl库就可以很容易地实现。我们只需要按照以下步骤来操作:

导入openpyxl库

首先,我们需要导入openpyxl库,这样我们才能使用它提供的功能。我们可以用下面的代码来导入openpyxl库:

import openpyxl

加载Excel文件

接下来,我们需要加载我们要处理的Excel文件,也就是档案记录Excel文件。我们可以用openpyxl库中的load_workbook函数来加载Excel文件,并返回一个Workbook对象。Workbook对象代表了整个Excel文件,它包含了所有的工作表sheet和其他信息。我们可以用下面的代码来加载Excel文件,并把返回的Workbook对象赋值给一个变量wb:

wb = openpyxl.load_workbook('档案记录.xlsx')

注意,这里的'档案记录.xlsx'是我们要处理的Excel文件的名称,你需要根据你自己的文件名来修改。

创建一个新的工作簿

然后,我们需要创建一个新的工作簿Workbook对象,用来存放我们提取出来的数据。我们可以用openpyxl库中的Workbook函数来创建一个新的工作簿,并返回一个Workbook对象。我们可以用下面的代码来创建一个新的工作簿,并把返回的Workbook对象赋值给一个变量new_wb:

new_wb = openpyxl.Workbook()

创建一个新的工作表

接着,我们需要在新创建的工作簿new_wb中创建一个新的工作表sheet,用来存放我们提取出来的数据。我们可以用Workbook对象中的create_sheet方法来创建一个新的工作表,并返回一个Worksheet对象。Worksheet对象代表了一个单独的工作表sheet,它包含了所有的单元格cell和其他信息。我们可以用下面的代码来创建一个新的工作表,并把返回的Worksheet对象赋值给一个变量new_ws:

new_ws = new_wb.create_sheet('提取结果')

注意,这里的'提取结果'是我们创建的新工作表的名称,你可以根据你自己的需求来修改。

复制表头

然后,我们需要把原来的Excel文件中的表头复制到新创建的工作表中,也就是把第一行的数据复制过来。我们可以用Worksheet对象中的append方法来向工作表中添加一行数据,这个方法接受一个列表作为参数,列表中的每个元素代表了一列的数据。我们可以用下面的代码来复制表头:

# 获取原来Excel文件中的第一个工作表
ws = wb.worksheets[0]
# 获取第一行的数据
header = [cell.value for cell in ws[1]]
# 向新创建的工作表中添加一行数据
new_ws.append(header)

注意,这里我们假设所有的工作表sheet都有相同的表头,所以我们只需要获取第一个工作表中的第一行数据即可。如果你的Excel文件中的工作表有不同的表头,你需要根据你自己的情况来修改。

遍历所有工作表和单元格

接下来,我们需要遍历原来Excel文件中的所有工作表sheet,再遍历每个工作表中的第一列(名称列,也可以看作A列)每一个有数据的单元格cell,对单元格中的内容进行判断,如果单元格中的文字为我们需要查找的档案名,就把这一行提取出来放到新创建的工作表中。我们可以用下面的代码来遍历所有工作表和单元格:

# 遍历原来Excel文件中的所有工作表
for ws in wb.worksheets:
    # 遍历每个工作表中第一列每一个有数据的单元格
    for cell in ws['A']:
        # 判断单元格中的内容是否为我们需要查找的档案名,比如“张三”
        # 获取单元格所在的行号
        row = cell.row
        # 根据行号获取这一行的数据
        data = [cell.value for cell in ws[row]]
        # 向新创建的工作表中添加一行数据
        new_ws.append(data)

注意,这里我们假设我们要查找的档案名是“张三”,你可以根据你自己的需求来修改。

保存新创建的工作簿

最后,我们需要把新创建的工作簿new_wb保存到一个新的Excel文件中,这样我们就可以查看我们提取出来的数据了。我们可以用Workbook对象中的save方法来保存工作簿,这个方法接受一个文件名作为参数,表示要保存的Excel文件的名称。我们可以用下面的代码来保存工作簿:

new_wb.save('提取结果.xlsx')

注意,这里的'提取结果.xlsx'是我们要保存的Excel文件的名称,你可以根据你自己的需求来修改。

结语:通过本文的介绍,我们只需几行代码就能完成 Excel 关键数据的批量查找与高亮,相比手动遍历更高效、更易维护。无论是日常办公中的数据筛查,还是批量处理业务表格,这个方法都能帮你节省大量时间。

到此这篇关于Python轻松实现查找高亮Excel指定数据的文章就介绍到这了,更多相关Python查找Excel指定数据内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Django中常用的查询数据方法及查询对象的条件详解

    Django中常用的查询数据方法及查询对象的条件详解

    在web 开发过程中,Django 与后台数据库的交互是必不可少的一项,也是实现业务逻辑所需数据的重要方式,这篇文章主要给大家介绍了关于Django中常用的查询数据方法及查询对象条件的相关资料,需要的朋友可以参考下
    2021-09-09
  • python获取当前运行函数名称的方法实例代码

    python获取当前运行函数名称的方法实例代码

    这篇文章主要介绍了python获取当前运行函数名称的方法实例代码的相关资料,需要的朋友可以参考下
    2017-04-04
  • python密码学Base64编码和解码教程

    python密码学Base64编码和解码教程

    这篇文章主要为大家介绍了python密码学Base64编码和解码教程详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05
  • Python键值互换的实现示例

    Python键值互换的实现示例

    Python键值互换是一种对Python字典类型中键值对进行反转的技术,有时候,我们需要以值作为键,以键作为值来操作字典,这时候就需要用到键值互换的技术,本文主要介绍了Python键值互换的实现示例,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07
  • Python3 如何开启自带http服务

    Python3 如何开启自带http服务

    这篇文章主要介绍了Python3 开启自带http服务的操作方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-05-05
  • Python中Functools模块的高级操作详解

    Python中Functools模块的高级操作详解

    functools模块是Python标准库中的一个宝库,提供了一些有用的功能,可以帮助您更好地利用函数的潜力,下面小编就来为大家介绍一下functools模块的相关具体使用吧
    2023-11-11
  • jupyter lab的目录调整及设置默认浏览器为chrome的方法

    jupyter lab的目录调整及设置默认浏览器为chrome的方法

    这篇文章主要介绍了jupyter lab的目录调整及设置默认浏览器为chrome的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-04-04
  • Python处理PPT文件的实用知识点总结

    Python处理PPT文件的实用知识点总结

    python是一门很强大的语言,因为有着丰富的第三方库,所以可以说Python是无所不能的,下面这篇文章主要给大家介绍了关于用Python提取PPT中图片的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-01-01
  • python中Genarator函数用法分析

    python中Genarator函数用法分析

    这篇文章主要介绍了python中Genarator函数用法,实例分析了Genarator函数的使用原理与相关技巧,需要的朋友可以参考下
    2015-04-04
  • python添加命令行参数的详细过程

    python添加命令行参数的详细过程

    Click 是 Flask 的开发团队 Pallets 的另一款开源项目,它是用于快速创建命令行的第三方模块,这篇文章主要介绍了python怎么添加命令行参数,需要的朋友可以参考下
    2023-06-06

最新评论