如何使用Python讀取Excel文件?
其實,在此之前,小編也從來沒研究過如何使用Python讀取Excel數據,但是本著負責的態度,小編搜索了一下“Python如何讀取Excel數據”,得知xlrd庫是專門用來讀取Excel的,所以小編馬上下載下來學習了一番。
中國有句古話說“授人以魚,不如授人以漁”,所以今天小編不打算直接分享干貨,而是通過這個庫教大家如何學習使用一個陌生的庫。
一、庫的安裝通過百度我們得知,已經有現成的處理Excel數據的xlrd庫了,所以我們可以直接在終端里輸入以下命令下載安裝最新的xlrd庫。
pip install xlrd
二、查看庫文件Python的第三方庫均保存在Python安裝目錄下的lib文件夾中的site-packages文件夾中,所以我們直接進入該文件夾找到并進入xlrd文件夾。
從圖中我們可以看出,xlrd庫中文件并不是很多,但是我們應該從哪個文件開始看呢?有一定編程基礎的人應該發現__init__.py這個文件了,init在英語中是開始、最初的意思,而Linux系統也是從init這個進程對組成Linux的服務和應用程序進行初始化的,所以一個成熟的庫通常都會有一個__init__.py文件,而這個庫的運行就是從這個文件開始的。
三、__init__.py代碼閱讀打開文件,我們可以看出,該文件主要分為兩部分:第一部分導入依賴的庫以及xlrd庫中的其他文件;第二部分為定義的三個函數。
對于導入的庫和文件,我們可以先不看,我們主要看定義的三個函數,看他們的說明以及返回什么。
1、open_workbook
函數open_workbook的說明為:“Open a spreadsheet file for data extraction.”
翻譯成中文的意思為:“打開一個用于提取數據的電子表格。”
由此我們可知,使用這個庫的第一步應該是從這個函數開始的,即通過該函數打開我們所要處理的Excel文件。
而該函數返回值為bk,即book.open_workbook_xls()的返回值,所以我們下一步的任務就是查看book.py這個文件。
2、dump
函數dump的說明為:“For debugging: dump an XLS file's BIFF records in char & hex.”
翻譯成中文的意思為:“用于調試:將XLS文件的BIFF記錄轉儲為16進制字符”
看說明我也沒弄明白具體是做什么的,所以暫時放過,不研究。
3、count_records
函數count_records的說明為:“For debugging and analysis: summarise the file's BIFF records.”
翻譯成中文的意思為:“用于調試和分析:總結文件的BIFF記錄。”
看說明同樣不明白具體是做什么的,所以暫時放過,不研究。
四、book.py代碼閱讀book.py有兩個類五個函數,由于__init__.py文件中open_workbook函數最后的返回是book.open_workbook_xls(),所以我們先從open_workbook_xls()這個函數讀起。
1、open_workbook_xls()
對于函數,我們還是先不管他內部都做了什么,先看返回值是什么。很顯然,open_workbook_xls()函數返回值為bk,即Book(),由此我們得知,當我們使用open_workbook函數導入一個Excel文件時,返回的是一個Book類的實例,而我們下一步的任務就是看Book類。
2、Book()
Book()類有30多個方法,我們依舊從__init__()方法開始看。
展開__init__()方法,發現里面只有屬性變量的初始化,并沒有太多有用的東西。此時我們的線索斷了,我們應該怎么辦呢?我們不妨跳出這個庫,想想Excel表格的結構是什么樣的。
用過Excel的同學一定都知道,在Excel中,通常一個文件為一個工作簿,即Book;而一個工作簿可以有多個工作表,即Sheet。
我們回過頭來繼續看代碼發現,Book類中有一個sheets方法,所以我們就從這個sheets方法入手。
sheets方法調用了get_sheet方法,返回_sheet_list列表,我們繼續看get_sheet方法
從get_sheet方法中我們可以得知_sheet_list列表的元素為sh,方法的返回值也為sh,即sheet.Sheet()——工作表。
至此,我們已經掌握以下三點內容:
使用open_workbook函數導入Excel文件,得到Book工作簿實例
通過Book工作簿的sheets方法我們可以獲取Book工作簿的所有sheet工作表列表
通過Book工作簿的get_sheet方法我們可以獲取Book工作簿的指定的某個sheet工作表
由于數據都是存儲在工作表中的,所以我們只要繼續研究sheet.py文件就可以弄明白如何將數據提取出來了。
五、sheet.py代碼閱讀sheet.py文件中Sheet類是我們研究的重點,所以我們首先看這個類。
還是一樣的流程,先看__init__()方法,里面同樣是一些屬性變量初始化定義。
然后我們會發現幾個帶values字樣的方法:
1、cell_value
根據說明我們可以知道,該方法可以得到指定單元格的數值。
2、row_values
根據說明我們可以知道,該方法可以得到指定行的數值。
3、col_values
根據說明我們可以知道,該方法可以得到指定列的數值。
六、總結使用xlrd庫讀取Excel文件有以下幾個步驟:
1、使用open_workbook函數導入Excel文件,得到Book工作簿實例
book = xlrd.open_workbook('./test.xls')
2、通過Book工作簿的sheets或get_sheet方法獲取Book工作簿的sheet工作表
sheet = book.sheets()[0]
3、通過sheet工作表的cell_value、row_values或col_values方法獲取相關數值
row_values = sheet.row_values(1)
今天我們通過對xlrd庫的解讀跟大家分享了如何使用Python讀取Excel文件,并教給大家如何學習使用一個陌生的庫。由于篇幅有限,xlrd庫的大部分用法文中并沒有講到,不過,既然大家已經知道如何學習一個陌生的庫了,xlrd庫的用法就由大家自己來摸索吧!如果您覺得小編還有一點點小能力,想學習更多的Python或者數據可視化的東西,關注我吧!