有時(shí)候我們需要對Excel中的數(shù)據(jù)進(jìn)行一些復(fù)雜的操作,比如批量查找、篩選、合并等,這時(shí)候用Python就可以大大提高我們的效率和準(zhǔn)確性。
在本教程中,我們將學(xué)習(xí)如何使用Python的openpyxl庫來批量查找Excle數(shù)據(jù)。openpyxl是一個(gè)專門用來處理Excel文件的Python庫,它可以讀取和寫入Excel文件,以及對Excel文件中的數(shù)據(jù)進(jìn)行各種操作。我們將通過一個(gè)具體的例子來演示openpyxl庫的使用方法和api用途。

假設(shè)我們有一個(gè)Excel文件,里面存儲了一些檔案記錄,每個(gè)檔案都有一個(gè)名稱、配置、提交日期等信息。這個(gè)Excel文件有多個(gè)工作表sheet,每個(gè)sheet代表了一個(gè)月份,比如1月、2月、3月等。我們現(xiàn)在想要把所有日期工作表中的特定行都提取出來整合成一個(gè)新表,比如我們想要查找所有名稱為“張三”的檔案記錄,并把它們放到一個(gè)新的Excel文件中。

這個(gè)任務(wù)用Python和openpyxl庫就可以很容易地實(shí)現(xiàn)。我們只需要按照以下步驟來操作:
首先,我們需要導(dǎo)入openpyxl庫,這樣我們才能使用它提供的功能。我們可以用下面的代碼來導(dǎo)入openpyxl庫:
import openpyxl接下來,我們需要加載我們要處理的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è)新的工作簿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)建的工作簿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ù)你自己的需求來修改。
然后,我們需要把原來的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)容是否為我們需要查找的檔案名,比如“張三” # 獲取單元格所在的行號 row = cell.row # 根據(jù)行號獲取這一行的數(shù)據(jù) data = [cell.value for cell in ws[row]] # 向新創(chuàng)建的工作表中添加一行數(shù)據(jù) new_ws.append(data)注意,這里我們假設(shè)我們要查找的檔案名是“張三”,你可以根據(jù)你自己的需求來修改。
最后,我們需要把新創(chuàng)建的工作簿new_wb保存到一個(gè)新的Excel文件中,這樣我們就可以查看我們提取出來的數(shù)據(jù)了。我們可以用Workbook對象中的save方法來保存工作簿,這個(gè)方法接受一個(gè)文件名作為參數(shù),表示要保存的Excel文件的名稱。我們可以用下面的代碼來保存工作簿:
new_wb.save('提取結(jié)果.xlsx')注意,這里的'提取結(jié)果.xlsx'是我們要保存的Excel文件的名稱,你可以根據(jù)你自己的需求來修改。
通過以上七個(gè)步驟,我們就完成了使用Python和openpyxl庫批量查找Excle數(shù)據(jù)的任務(wù)。我們可以打開'提取結(jié)果.xlsx'文件,看到我們提取出來的所有名稱為“張三”的檔案記錄。
通過這個(gè)例子,我們學(xué)習(xí)了如何使用openpyxl庫中的一些常用的函數(shù)和方法,比如load_workbook、Workbook、create_sheet、append、save等。openpyxl庫還有很多其他的功能,比如修改單元格樣式、插入公式、添加圖表等,你可以參考o(jì)penpyxl官方文檔來進(jìn)一步學(xué)習(xí)和探索。
本文鏈接:http://m.www897cc.com/showinfo-26-66192-0.htmlPython辦公神器:教你使用Python批量查找Excle數(shù)據(jù)
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。郵件:2376512515@qq.com
上一篇: 管理?xiàng)売玫腒ubernetes API:優(yōu)秀實(shí)踐和工具
下一篇: Python中zoneinfo模塊的用法