Python輕松實現(xiàn)查找高亮Excel指定數(shù)據(jù)
在日常工作中,Excel表格無疑是我們處理數(shù)據(jù)最常用的工具之一。無論是銷售報表、客戶清單,還是項目進度,海量的行與列常常讓人望而卻步。當我們需要從這些龐雜的數(shù)據(jù)中,快速定位并標記出關鍵信息時,手動查找、復制、粘貼、填充顏色這一系列操作不僅效率低下,更容易因疏忽而導致錯誤。
而通過 Python,結合強大的 Excel 操作庫,能夠輕松實現(xiàn) Excel 數(shù)據(jù)的自動化查找與高亮。本文將深入探討如何利用 Free Spire.XLS for Python 免費庫完成這一任務,讓你的數(shù)據(jù)處理工作效率倍增。
免費庫安裝與使用
Free Spire.XLS for Python是一個易于使用的 Python 庫,它允許開發(fā)者在不依賴 Microsoft Office 的情況下,創(chuàng)建、讀取、編輯和轉換 Excel 文件。它支持多種 Excel 格式,包括 XLS、XLSX、CSV 等,并提供了豐富的API,可以滿足各種復雜的Excel處理需求。
安裝方法:
使用 pip 安裝非常簡單:
pip install Spire.XLS.Free
安裝完成后,導入必要的模塊即可開始編碼:
from spire.xls import * from spire.common import *
實現(xiàn)步驟:查找并高亮指定數(shù)據(jù)
我們以一個實際場景為例:假設有一份銷售數(shù)據(jù) Excel(sales_data.xlsx),需要查找所有包含 "華東區(qū)" 的單元格,并將其背景色設置為黃色、字體加粗,突出顯示。
步驟 1:加載 Excel 文件并獲取目標工作表
首先用 Workbook 類加載文件,然后通過索引獲取需要處理的工作表(這里以第一個工作表為例):
# 創(chuàng)建Workbook對象
workbook = Workbook()
# 加載Excel文件
workbook.LoadFromFile("sales_data.xlsx")
# 獲取第一個工作表(索引從0開始)
worksheet = workbook.Worksheets[0]
步驟 2:查找目標數(shù)據(jù)
接下來需要查找工作表中包含指定數(shù)據(jù)的所有單元格,然后為查找到的單元格設置高亮背景色
# 查找指定數(shù)據(jù)
cellRanges = sheet.FindAllString("華東區(qū)", 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
相比手動遍歷單元格,F(xiàn)indAllString方法的優(yōu)勢在于:
- 更簡潔:一行代碼完成所有目標數(shù)據(jù)的查找,無需嵌套循環(huán)
- 更高效率:底層優(yōu)化的查找邏輯,處理大型 Excel 時速度更快
- 更靈活:支持區(qū)分大小寫、精確 / 模糊匹配等參數(shù)配置
擴展場景
同時高亮多個關鍵詞
只需多次調用FindAllString并復用高亮邏輯:
# 定義需要查找的關鍵詞列表
keywords = ["華東區(qū)", "A產(chǎn)品"]
# 遍歷關鍵詞,逐個查找并高亮
for keyword in keywords:
cellRanges = sheet.FindAllString(keyword, False, True)
for cellRange in cellRanges:
cellRange.Style.Color = Color.get_LightYellow() # 統(tǒng)一用淺黃色
批量查找Excel數(shù)據(jù)
這個任務用Python和openpyxl庫就可以很容易地實現(xiàn)。我們只需要按照以下步驟來操作:
導入openpyxl庫
首先,我們需要導入openpyxl庫,這樣我們才能使用它提供的功能。我們可以用下面的代碼來導入openpyxl庫:
import openpyxl
加載Excel文件
接下來,我們需要加載我們要處理的Excel文件,也就是檔案記錄Excel文件。我們可以用openpyxl庫中的load_workbook函數(shù)來加載Excel文件,并返回一個Workbook對象。Workbook對象代表了整個Excel文件,它包含了所有的工作表sheet和其他信息。我們可以用下面的代碼來加載Excel文件,并把返回的Workbook對象賦值給一個變量wb:
wb = openpyxl.load_workbook('檔案記錄.xlsx')
注意,這里的'檔案記錄.xlsx'是我們要處理的Excel文件的名稱,你需要根據(jù)你自己的文件名來修改。
創(chuàng)建一個新的工作簿
然后,我們需要創(chuàng)建一個新的工作簿W(wǎng)orkbook對象,用來存放我們提取出來的數(shù)據(jù)。我們可以用openpyxl庫中的Workbook函數(shù)來創(chuàng)建一個新的工作簿,并返回一個Workbook對象。我們可以用下面的代碼來創(chuàng)建一個新的工作簿,并把返回的Workbook對象賦值給一個變量new_wb:
new_wb = openpyxl.Workbook()
創(chuàng)建一個新的工作表
接著,我們需要在新創(chuàng)建的工作簿new_wb中創(chuàng)建一個新的工作表sheet,用來存放我們提取出來的數(shù)據(jù)。我們可以用Workbook對象中的create_sheet方法來創(chuàng)建一個新的工作表,并返回一個Worksheet對象。Worksheet對象代表了一個單獨的工作表sheet,它包含了所有的單元格cell和其他信息。我們可以用下面的代碼來創(chuàng)建一個新的工作表,并把返回的Worksheet對象賦值給一個變量new_ws:
new_ws = new_wb.create_sheet('提取結果')
注意,這里的'提取結果'是我們創(chuàng)建的新工作表的名稱,你可以根據(jù)你自己的需求來修改。
復制表頭
然后,我們需要把原來的Excel文件中的表頭復制到新創(chuàng)建的工作表中,也就是把第一行的數(shù)據(jù)復制過來。我們可以用Worksheet對象中的append方法來向工作表中添加一行數(shù)據(jù),這個方法接受一個列表作為參數(shù),列表中的每個元素代表了一列的數(shù)據(jù)。我們可以用下面的代碼來復制表頭:
# 獲取原來Excel文件中的第一個工作表 ws = wb.worksheets[0] # 獲取第一行的數(shù)據(jù) header = [cell.value for cell in ws[1]] # 向新創(chuàng)建的工作表中添加一行數(shù)據(jù) new_ws.append(header)
注意,這里我們假設所有的工作表sheet都有相同的表頭,所以我們只需要獲取第一個工作表中的第一行數(shù)據(jù)即可。如果你的Excel文件中的工作表有不同的表頭,你需要根據(jù)你自己的情況來修改。
遍歷所有工作表和單元格
接下來,我們需要遍歷原來Excel文件中的所有工作表sheet,再遍歷每個工作表中的第一列(名稱列,也可以看作A列)每一個有數(shù)據(jù)的單元格cell,對單元格中的內容進行判斷,如果單元格中的文字為我們需要查找的檔案名,就把這一行提取出來放到新創(chuàng)建的工作表中。我們可以用下面的代碼來遍歷所有工作表和單元格:
# 遍歷原來Excel文件中的所有工作表
for ws in wb.worksheets:
# 遍歷每個工作表中第一列每一個有數(shù)據(jù)的單元格
for cell in ws['A']:
# 判斷單元格中的內容是否為我們需要查找的檔案名,比如“張三”
# 獲取單元格所在的行號
row = cell.row
# 根據(jù)行號獲取這一行的數(shù)據(jù)
data = [cell.value for cell in ws[row]]
# 向新創(chuàng)建的工作表中添加一行數(shù)據(jù)
new_ws.append(data)
注意,這里我們假設我們要查找的檔案名是“張三”,你可以根據(jù)你自己的需求來修改。
保存新創(chuàng)建的工作簿
最后,我們需要把新創(chuàng)建的工作簿new_wb保存到一個新的Excel文件中,這樣我們就可以查看我們提取出來的數(shù)據(jù)了。我們可以用Workbook對象中的save方法來保存工作簿,這個方法接受一個文件名作為參數(shù),表示要保存的Excel文件的名稱。我們可以用下面的代碼來保存工作簿:
new_wb.save('提取結果.xlsx')
注意,這里的'提取結果.xlsx'是我們要保存的Excel文件的名稱,你可以根據(jù)你自己的需求來修改。
結語:通過本文的介紹,我們只需幾行代碼就能完成 Excel 關鍵數(shù)據(jù)的批量查找與高亮,相比手動遍歷更高效、更易維護。無論是日常辦公中的數(shù)據(jù)篩查,還是批量處理業(yè)務表格,這個方法都能幫你節(jié)省大量時間。
到此這篇關于Python輕松實現(xiàn)查找高亮Excel指定數(shù)據(jù)的文章就介紹到這了,更多相關Python查找Excel指定數(shù)據(jù)內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Django中常用的查詢數(shù)據(jù)方法及查詢對象的條件詳解
在web 開發(fā)過程中,Django 與后臺數(shù)據(jù)庫的交互是必不可少的一項,也是實現(xiàn)業(yè)務邏輯所需數(shù)據(jù)的重要方式,這篇文章主要給大家介紹了關于Django中常用的查詢數(shù)據(jù)方法及查詢對象條件的相關資料,需要的朋友可以參考下2021-09-09
jupyter lab的目錄調整及設置默認瀏覽器為chrome的方法
這篇文章主要介紹了jupyter lab的目錄調整及設置默認瀏覽器為chrome的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-04-04

