Python輕松實(shí)現(xiàn)查找高亮Excel指定數(shù)據(jù)
在日常工作中,Excel表格無疑是我們處理數(shù)據(jù)最常用的工具之一。無論是銷售報(bào)表、客戶清單,還是項(xiàng)目進(jìn)度,海量的行與列常常讓人望而卻步。當(dāng)我們需要從這些龐雜的數(shù)據(jù)中,快速定位并標(biāo)記出關(guān)鍵信息時(shí),手動(dòng)查找、復(fù)制、粘貼、填充顏色這一系列操作不僅效率低下,更容易因疏忽而導(dǎo)致錯(cuò)誤。
而通過 Python,結(jié)合強(qiáng)大的 Excel 操作庫,能夠輕松實(shí)現(xiàn) Excel 數(shù)據(jù)的自動(dòng)化查找與高亮。本文將深入探討如何利用 Free Spire.XLS for Python 免費(fèi)庫完成這一任務(wù),讓你的數(shù)據(jù)處理工作效率倍增。
免費(fèi)庫安裝與使用
Free Spire.XLS for Python是一個(gè)易于使用的 Python 庫,它允許開發(fā)者在不依賴 Microsoft Office 的情況下,創(chuàng)建、讀取、編輯和轉(zhuǎn)換 Excel 文件。它支持多種 Excel 格式,包括 XLS、XLSX、CSV 等,并提供了豐富的API,可以滿足各種復(fù)雜的Excel處理需求。
安裝方法:
使用 pip 安裝非常簡單:
pip install Spire.XLS.Free
安裝完成后,導(dǎo)入必要的模塊即可開始編碼:
from spire.xls import * from spire.common import *
實(shí)現(xiàn)步驟:查找并高亮指定數(shù)據(jù)
我們以一個(gè)實(shí)際場景為例:假設(shè)有一份銷售數(shù)據(jù) Excel(sales_data.xlsx),需要查找所有包含 "華東區(qū)" 的單元格,并將其背景色設(shè)置為黃色、字體加粗,突出顯示。
步驟 1:加載 Excel 文件并獲取目標(biāo)工作表
首先用 Workbook 類加載文件,然后通過索引獲取需要處理的工作表(這里以第一個(gè)工作表為例):
# 創(chuàng)建Workbook對象
workbook = Workbook()
# 加載Excel文件
workbook.LoadFromFile("sales_data.xlsx")
# 獲取第一個(gè)工作表(索引從0開始)
worksheet = workbook.Worksheets[0]
步驟 2:查找目標(biāo)數(shù)據(jù)
接下來需要查找工作表中包含指定數(shù)據(jù)的所有單元格,然后為查找到的單元格設(shè)置高亮背景色
# 查找指定數(shù)據(jù)
cellRanges = sheet.FindAllString("華東區(qū)", False, True)
步驟 3:設(shè)置高亮樣式
遍歷查找到的目標(biāo)單元格,通過CellRange.Style屬性設(shè)置樣式。這里我們設(shè)置:
- • 背景色:黃色
- • 字體:加粗、黑色(增強(qiáng)對比度)
# 遍歷查找到的單元格
for cellRange in cellRanges:
# 設(shè)置背景色為黃色
cellRange.Style.Color = Color.get_LightYellow()
# 設(shè)置字體加粗
cellRange.Style.Font.IsBold = True
# 可選:設(shè)置字體顏色(默認(rèn)黑色,可改為深紅增強(qiáng)突出)
# cell.Style.Font.Color = Color.Red
步驟 4:保存修改后的文件
最后將處理后的 Excel 文件保存到本地(建議另存為新文件,避免覆蓋原文件):
# 保存文件(支持xlsx、xls等格式)
workbook.SaveToFile("FindHighlight.xlsx")
# 釋放資源
workbook.Dispose()
核心方法:FindAllString
相比手動(dòng)遍歷單元格,F(xiàn)indAllString方法的優(yōu)勢在于:
- 更簡潔:一行代碼完成所有目標(biāo)數(shù)據(jù)的查找,無需嵌套循環(huán)
- 更高效率:底層優(yōu)化的查找邏輯,處理大型 Excel 時(shí)速度更快
- 更靈活:支持區(qū)分大小寫、精確 / 模糊匹配等參數(shù)配置
擴(kuò)展場景
同時(shí)高亮多個(gè)關(guān)鍵詞
只需多次調(diào)用FindAllString并復(fù)用高亮邏輯:
# 定義需要查找的關(guān)鍵詞列表
keywords = ["華東區(qū)", "A產(chǎn)品"]
# 遍歷關(guān)鍵詞,逐個(gè)查找并高亮
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ù)
這個(gè)任務(wù)用Python和openpyxl庫就可以很容易地實(shí)現(xiàn)。我們只需要按照以下步驟來操作:
導(dǎo)入openpyxl庫
首先,我們需要導(dǎo)入openpyxl庫,這樣我們才能使用它提供的功能。我們可以用下面的代碼來導(dǎo)入openpyxl庫:
import openpyxl
加載Excel文件
接下來,我們需要加載我們要處理的Excel文件,也就是檔案記錄Excel文件。我們可以用openpyxl庫中的load_workbook函數(shù)來加載Excel文件,并返回一個(gè)Workbook對象。Workbook對象代表了整個(gè)Excel文件,它包含了所有的工作表sheet和其他信息。我們可以用下面的代碼來加載Excel文件,并把返回的Workbook對象賦值給一個(gè)變量wb:
wb = openpyxl.load_workbook('檔案記錄.xlsx')
注意,這里的'檔案記錄.xlsx'是我們要處理的Excel文件的名稱,你需要根據(jù)你自己的文件名來修改。
創(chuàng)建一個(gè)新的工作簿
然后,我們需要?jiǎng)?chuàng)建一個(gè)新的工作簿W(wǎng)orkbook對象,用來存放我們提取出來的數(shù)據(jù)。我們可以用openpyxl庫中的Workbook函數(shù)來創(chuàng)建一個(gè)新的工作簿,并返回一個(gè)Workbook對象。我們可以用下面的代碼來創(chuàng)建一個(gè)新的工作簿,并把返回的Workbook對象賦值給一個(gè)變量new_wb:
new_wb = openpyxl.Workbook()
創(chuàng)建一個(gè)新的工作表
接著,我們需要在新創(chuàng)建的工作簿new_wb中創(chuàng)建一個(gè)新的工作表sheet,用來存放我們提取出來的數(shù)據(jù)。我們可以用Workbook對象中的create_sheet方法來創(chuàng)建一個(gè)新的工作表,并返回一個(gè)Worksheet對象。Worksheet對象代表了一個(gè)單獨(dú)的工作表sheet,它包含了所有的單元格cell和其他信息。我們可以用下面的代碼來創(chuàng)建一個(gè)新的工作表,并把返回的Worksheet對象賦值給一個(gè)變量new_ws:
new_ws = new_wb.create_sheet('提取結(jié)果')
注意,這里的'提取結(jié)果'是我們創(chuàng)建的新工作表的名稱,你可以根據(jù)你自己的需求來修改。
復(fù)制表頭
然后,我們需要把原來的Excel文件中的表頭復(fù)制到新創(chuàng)建的工作表中,也就是把第一行的數(shù)據(jù)復(fù)制過來。我們可以用Worksheet對象中的append方法來向工作表中添加一行數(shù)據(jù),這個(gè)方法接受一個(gè)列表作為參數(shù),列表中的每個(gè)元素代表了一列的數(shù)據(jù)。我們可以用下面的代碼來復(fù)制表頭:
# 獲取原來Excel文件中的第一個(gè)工作表 ws = wb.worksheets[0] # 獲取第一行的數(shù)據(jù) header = [cell.value for cell in ws[1]] # 向新創(chuàng)建的工作表中添加一行數(shù)據(jù) new_ws.append(header)
注意,這里我們假設(shè)所有的工作表sheet都有相同的表頭,所以我們只需要獲取第一個(gè)工作表中的第一行數(shù)據(jù)即可。如果你的Excel文件中的工作表有不同的表頭,你需要根據(jù)你自己的情況來修改。
遍歷所有工作表和單元格
接下來,我們需要遍歷原來Excel文件中的所有工作表sheet,再遍歷每個(gè)工作表中的第一列(名稱列,也可以看作A列)每一個(gè)有數(shù)據(jù)的單元格cell,對單元格中的內(nèi)容進(jìn)行判斷,如果單元格中的文字為我們需要查找的檔案名,就把這一行提取出來放到新創(chuàng)建的工作表中。我們可以用下面的代碼來遍歷所有工作表和單元格:
# 遍歷原來Excel文件中的所有工作表
for ws in wb.worksheets:
# 遍歷每個(gè)工作表中第一列每一個(gè)有數(shù)據(jù)的單元格
for cell in ws['A']:
# 判斷單元格中的內(nèi)容是否為我們需要查找的檔案名,比如“張三”
# 獲取單元格所在的行號(hào)
row = cell.row
# 根據(jù)行號(hào)獲取這一行的數(shù)據(jù)
data = [cell.value for cell in ws[row]]
# 向新創(chuàng)建的工作表中添加一行數(shù)據(jù)
new_ws.append(data)
注意,這里我們假設(shè)我們要查找的檔案名是“張三”,你可以根據(jù)你自己的需求來修改。
保存新創(chuàng)建的工作簿
最后,我們需要把新創(chuàng)建的工作簿new_wb保存到一個(gè)新的Excel文件中,這樣我們就可以查看我們提取出來的數(shù)據(jù)了。我們可以用Workbook對象中的save方法來保存工作簿,這個(gè)方法接受一個(gè)文件名作為參數(shù),表示要保存的Excel文件的名稱。我們可以用下面的代碼來保存工作簿:
new_wb.save('提取結(jié)果.xlsx')
注意,這里的'提取結(jié)果.xlsx'是我們要保存的Excel文件的名稱,你可以根據(jù)你自己的需求來修改。
結(jié)語:通過本文的介紹,我們只需幾行代碼就能完成 Excel 關(guān)鍵數(shù)據(jù)的批量查找與高亮,相比手動(dòng)遍歷更高效、更易維護(hù)。無論是日常辦公中的數(shù)據(jù)篩查,還是批量處理業(yè)務(wù)表格,這個(gè)方法都能幫你節(jié)省大量時(shí)間。
到此這篇關(guān)于Python輕松實(shí)現(xiàn)查找高亮Excel指定數(shù)據(jù)的文章就介紹到這了,更多相關(guān)Python查找Excel指定數(shù)據(jù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
一篇文章徹底搞懂Python魔法參數(shù)args和kwargs(通俗易懂)
這篇文章主要介紹了Python中的*args和**kwargs,它們分別是可變位置參數(shù)和可變關(guān)鍵字參數(shù),文章通過實(shí)際例子展示了如何在函數(shù)、裝飾器等場景中使用*args和**kwargs,幫助讀者理解并掌握這些靈活的參數(shù)處理方式,需要的朋友可以參考下2025-02-02
python破解WiFi教程代碼,Python蹭網(wǎng)原理講解
用Python生成一個(gè)簡單的密碼本,一般是有數(shù)字、字母和符號(hào)組成,這里用到的思路主要是窮舉法。通過使用pywifi?模塊,根據(jù)密碼本暴力破解WiFi。本文只是從技術(shù)的角度來闡述學(xué)習(xí)Pywifi庫!并不建議大家做任何破壞性的操作和任何不當(dāng)?shù)男袨椋?/div> 2023-01-01
python中的單下劃線與雙下劃線以及絕對導(dǎo)入與相對導(dǎo)入
這篇文章主要介紹了python中的單下劃線與雙下劃線以及絕對導(dǎo)入與相對導(dǎo)入說明,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-11-11
通過pycharm的database設(shè)置進(jìn)行數(shù)據(jù)庫的可視化方式
這篇文章主要介紹了通過pycharm的database設(shè)置進(jìn)行數(shù)據(jù)庫的可視化方式,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-09-09
pytorch torch.nn.AdaptiveAvgPool2d()自適應(yīng)平均池化函數(shù)詳解
今天小編就為大家分享一篇pytorch torch.nn.AdaptiveAvgPool2d()自適應(yīng)平均池化函數(shù)詳解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-01-01
python支持?jǐn)帱c(diǎn)續(xù)傳的多線程下載示例
這篇文章主要介紹了python支持?jǐn)帱c(diǎn)續(xù)傳的多線程下載示例,大家參考使用吧2014-01-01最新評(píng)論

