使用 Python 的第三方庫 xlrd 讀取 Excel 文件的詳細(xì)過程
使用 Python 的第三方庫 xlrd 讀取 Excel 文件
一、安裝 xlrd 庫
xlrd是讀Excel的庫,xlrd是第三方庫,因此需要先安裝才能使用。在Windows命令行窗口輸入如下命令安裝 xlrd庫:
C:\Users\Administrator>pip install xlrd Collecting xlrd Downloading xlrd-2.0.2-py2.py3-none-any.whl.metadata (3.5 kB) Downloading xlrd-2.0.2-py2.py3-none-any.whl (96 kB) Installing collected packages: xlrd Successfully installed xlrd-2.0.2 [notice] A new release of pip is available: 25.2 -> 25.3 [notice] To update, run: python.exe -m pip install --upgrade pip
對(duì)pip包進(jìn)行更新:
C:\Users\Administrator>python.exe -m pip install --upgrade pip
Requirement already satisfied: pip in c:\users\administrator\appdata\local\programs\python\python313\lib\site-packages (25.2)
Collecting pip
Downloading pip-25.3-py3-none-any.whl.metadata (4.7 kB)
Downloading pip-25.3-py3-none-any.whl (1.8 MB)
---------------------------------------- 1.8/1.8 MB 4.6 MB/s 0:00:00
Installing collected packages: pip
Attempting uninstall: pip
Found existing installation: pip 25.2
Uninstalling pip-25.2:
Successfully uninstalled pip-25.2
Successfully installed pip-25.3由于所安裝的第三方庫默認(rèn)是在國外的服務(wù)器上,所以可能會(huì)出現(xiàn)安裝速度比較慢的情況。此時(shí)可以嘗試使用國內(nèi)鏡像源的方式進(jìn)行安裝。國內(nèi)鏡像源網(wǎng)址如下:
清華大學(xué):https://pypi.tuna.tsinghua.edu.cn/simple
阿里云:http:/mirrors.aliyun.com/pypi/simple
鏡像源使用方式:在使用pip時(shí)添加參數(shù)-i https://pypi.tuna.tsinghua.edu.cn/simple
例如:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple xlrd
二、使用 xlrd 庫讀取 Excel 文件
1、打開 Excel 工作表
理解工作簿、工作表、單元格區(qū)域、單元格等概念。
import xlrd
# 使用 open_workbook 加載磁盤中的Excel文件
excelbook=xlrd.open_workbook(r"d:/資產(chǎn)清單.xlsx")
# 執(zhí)行以上代碼時(shí)程序報(bào)如下錯(cuò)誤:
File "C:/Users/Administrator/AppData/Local/Programs/Python/Python313/aa.py", line 2, in <module>
excelbook=xlrd.open_workbook(r"d:/資產(chǎn)清單.xlsx")
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python313\Lib\site-packages\xlrd\__init__.py", line 170, in open_workbook
raise XLRDError(FILE_FORMAT_DESCRIPTIONS[file_format]+'; not supported')
xlrd.biffh.XLRDError: Excel xlsx file; not supported在 CSDN 搜索,給出的原因如下:通常是由于當(dāng)前 Python 中的 xlrd 版本過高,高版本下刪除了對(duì)應(yīng)的 .xlsx 讀取方法,或者 xlrd 更新到了 2.0.1 版本,只支持 .xls 文件。
解決方法為:重裝指定版本的 xlrd。在命令行中先卸載現(xiàn)有的 xlrd,再安裝指定版本的 xlrd。
C:\Users\Administrator>pip uninstall xlrd
Found existing installation: xlrd 2.0.2
Uninstalling xlrd-2.0.2:
Would remove:
c:\users\administrator\appdata\local\programs\python\python313\lib\site-packages\xlrd-2.0.2.dist-info\*
c:\users\administrator\appdata\local\programs\python\python313\lib\site-packages\xlrd\*
c:\users\administrator\appdata\local\programs\python\python313\scripts\runxlrd.py
Proceed (Y/n)? y
Successfully uninstalled xlrd-2.0.2
C:\Users\Administrator>pip install xlrd==1.2.0
Collecting xlrd==1.2.0
Downloading xlrd-1.2.0-py2.py3-none-any.whl.metadata (1.3 kB)
Downloading xlrd-1.2.0-py2.py3-none-any.whl (103 kB)
Installing collected packages: xlrd
Successfully installed xlrd-1.2.0重新編寫代碼,加載 Excel 文件,獲取工作表中的數(shù)據(jù)。
加載 Excel 文件,查看對(duì)象類型。代碼如下:
import xlrd # 使用 open_workbook 加載磁盤中的Excel文件 excelbook=xlrd.open_workbook(r"d:/資產(chǎn)清單.xlsx") print(type(excelbook)) print(excelbook) 程序運(yùn)行結(jié)果為: <class 'xlrd.book.Book'> <xlrd.book.Book object at 0x00000215C84C7B60>
獲取工作表對(duì)象信息。代碼如下:
import xlrd
excelbook=xlrd.open_workbook(r"d:/資產(chǎn)清單.xlsx")
# 按照工作表的序號(hào)獲取第一個(gè)工作表對(duì)象信息
sht1=excelbook.sheet_by_index(0)
# 按照工作表的名稱獲取工作表對(duì)象信息
sht2=excelbook.sheet_by_name("總資產(chǎn)")
# 獲取所有的工作表信息,保存到一個(gè)列表中。
shts=excelbook.sheets()
# 獲取列表中的第二個(gè)元素,即第二個(gè)工作表對(duì)象信息
sht3=shts[1]
print(type(sht1))
print(sht1)
print(sht2)
print(type(shts))
print(shts)
print(sht3)
程序運(yùn)行結(jié)果為:
<class 'xlrd.sheet.Sheet'>
<xlrd.sheet.Sheet object at 0x000001A8AB867E00>
<xlrd.sheet.Sheet object at 0x000001A8AB867E00>
<class 'list'>
[<xlrd.sheet.Sheet object at 0x000001A8AB867E00>, <xlrd.sheet.Sheet object at 0x000001A8AB94C2D0>]
<xlrd.sheet.Sheet object at 0x000001A8AB94C2D0>2、讀取單個(gè)單元格的信息
獲取單元格數(shù)據(jù)有兩種方式:一是使用cell_value函數(shù)直接返回單元格的數(shù)據(jù),該函數(shù)傳遞兩個(gè)參數(shù):單元格數(shù)值所在的行號(hào)和列號(hào)。另一種是使用cell函數(shù),該函數(shù)仍然需要傳遞兩個(gè)參數(shù):行號(hào)和列號(hào),但該函數(shù)返回的是一個(gè)單元格對(duì)象,需要使用該對(duì)象的value屬性返回單元格中的數(shù)據(jù)。
常用的單元格數(shù)據(jù)類型包含如下幾種:
0:empty——空
1:string——文本
2:number——數(shù)值
3:date——日期
4:boolean——邏輯值
5:error——錯(cuò)誤
6:blank——空格
例如:
import xlrd excelbook=xlrd.open_workbook(r"d:/資產(chǎn)清單.xlsx") # 獲取第一個(gè)工作表對(duì)象信息 sht1=excelbook.sheets()[0] # 獲取第3行第2列的單元格的內(nèi)容 x=sht1.cell(2,1).value print(x) print(type(x)) # 獲取第3行第6列的單元格的內(nèi)容 x=sht1.cell_value(2,5) print(x) print(type(x)) 程序運(yùn)行結(jié)果為: 家具 <class 'str'> 700.0 <class 'float'>
3、讀取多個(gè)單元格的信息
使用工作表的nrows屬性可以獲取工作表總的有效行數(shù),ncols屬性可以獲取工作表總的有效列數(shù)。
import xlrd excelbook=xlrd.open_workbook(r"d:/資產(chǎn)清單.xlsx") rows=excelbook.sheets()[0].nrows cols=excelbook.sheets()[0].ncols print(rows) print(cols) 程序運(yùn)行結(jié)果為: 7 9
使用row(n)函數(shù)可以獲取第n行數(shù)據(jù),使用col(n)函數(shù)可以獲取第n列數(shù)據(jù)。
import xlrd
excelbook=xlrd.open_workbook(r"d:/資產(chǎn)清單.xlsx")
row=excelbook.sheets()[0].row(2)
print(row)
print(type(row))
print("==="*20)
print(row[1])
print(type(row[1]))
print("==="*20)
col=excelbook.sheets()[0].col(3)
print(col)
print(type(col))
程序運(yùn)行結(jié)果為:
[number:2.0, text:'家具', text:'JJ2020021492', text:'目錄柜', text:'50斗', number:700.0, text:'經(jīng)濟(jì)與管理學(xué)院辦公室', text:'10號(hào)教學(xué)樓2樓10206', xldate:33329.0]
<class 'list'>
============================================================
text:'家具'
<class 'xlrd.sheet.Cell'>
============================================================
[text:'名稱', text:'期刊架', text:'目錄柜', text:'雙面書桌', text:'雙面書桌', text:'雙面書桌', text:'雙面書桌']
<class 'list'>row(n)函數(shù)與 col(n)函數(shù)獲取到的數(shù)據(jù)是一個(gè)列表,列表中元素的數(shù)據(jù)類型為<class 'xlrd.sheet.Cell'>,這是xlrd中的cell對(duì)象。也就是每一個(gè)列表元素表示的是一個(gè)單元格對(duì)象,單元格對(duì)象有value屬性。因此,可以遍歷列表獲得每一個(gè)單元格對(duì)象,再通過value屬性獲取每一個(gè)單元格的值。
代碼如下:
import xlrd
excelbook=xlrd.open_workbook(r"d:/資產(chǎn)清單.xlsx")
rows=excelbook.sheets()[0].nrows
for row_id in range(rows):
for cell in excelbook.sheets()[0].row(row_id):
print(cell.value,end=" ")
print("")
程序運(yùn)行結(jié)果為:
序號(hào) 類別 編號(hào) 名稱 型號(hào) 價(jià)值 領(lǐng)用單位 存放地 入庫日期
1.0 家具 JJ2020019977 期刊架 D型 590.0 經(jīng)濟(jì)與管理學(xué)院辦公室 10號(hào)教學(xué)樓2樓10206 33329.0
2.0 家具 JJ2020021492 目錄柜 50斗 700.0 經(jīng)濟(jì)與管理學(xué)院辦公室 10號(hào)教學(xué)樓2樓10206 33329.0
3.0 家具 JJ2020023833 雙面書桌 雙面 410.0 經(jīng)濟(jì)與管理學(xué)院辦公室 10號(hào)教學(xué)樓2樓10206 33329.0
4.0 家具 JJ2020023834 雙面書桌 雙面 410.0 經(jīng)濟(jì)與管理學(xué)院辦公室 10號(hào)教學(xué)樓2樓10206 33329.0
5.0 家具 JJ2020023835 雙面書桌 雙面 410.0 經(jīng)濟(jì)與管理學(xué)院辦公室 10號(hào)教學(xué)樓2樓10206 33329.0
6.0 家具 JJ2020023836 雙面書桌 雙面 410.0 經(jīng)濟(jì)與管理學(xué)院辦公室 10號(hào)教學(xué)樓2樓10206 33329.0 到此這篇關(guān)于使用 Python 的第三方庫 xlrd 讀取 Excel 文件的詳細(xì)過程的文章就介紹到這了,更多相關(guān)python xlrd 讀取 Excel內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Python?xlrd實(shí)現(xiàn)從讀取Excel到高效數(shù)據(jù)提取的全面指南
- Python使用xlrd輕松讀取Excel文件的示例代碼
- Python使用xlrd模塊實(shí)現(xiàn)操作Excel讀寫的方法匯總
- 使用Python的xlrd和xlwt操作Excel詳解
- Python讀取xlsx文件報(bào)錯(cuò):xlrd.biffh.XLRDError:?Excel?xlsx?file;not?supported問題解決
- Python自動(dòng)化操作Excel方法詳解(xlrd,xlwt)
- python使用xlrd模塊讀取excel的方法實(shí)例
- 利用Python第三方庫xlrd讀取Excel中數(shù)據(jù)實(shí)例代碼
- python安裝第三方庫如xlrd的方法
相關(guān)文章
Python實(shí)現(xiàn)一個(gè)數(shù)組除以一個(gè)數(shù)的例子
今天小編就為大家分享一篇Python實(shí)現(xiàn)一個(gè)數(shù)組除以一個(gè)數(shù)的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-07-07
基于python模擬TCP3次握手連接及發(fā)送數(shù)據(jù)
這篇文章主要介紹了基于python模擬TCP3次握手連接及發(fā)送數(shù)據(jù),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-11-11
pytho多張圖片的無損拼接的實(shí)現(xiàn)示例
很多人都會(huì)是用PS進(jìn)行拼接,本文主要介紹了pytho多張圖片的無損拼接的實(shí)現(xiàn)示例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-07-07
Python調(diào)用百度api實(shí)現(xiàn)語音識(shí)別詳解
這篇文章主要介紹了Python通過調(diào)用百度api實(shí)現(xiàn)語音識(shí)別,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧2021-12-12
python打包exe文件并隱藏執(zhí)行CMD命令窗口問題
這篇文章主要介紹了python打包exe文件并隱藏執(zhí)行CMD命令窗口問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-01-01
python實(shí)現(xiàn)屏保計(jì)時(shí)器的示例代碼
這篇文章主要介紹了python實(shí)現(xiàn)屏保計(jì)時(shí)器的示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-08-08
Python使用lxml庫高效解析HTML/XML文檔的全面指南
lxml是Python中最高效的XML/HTML處理庫,結(jié)合了ElementTree的簡單API和libxml2/libxslt的強(qiáng)大性能,本文給大家詳細(xì)介紹了Python使用lxml庫高效解析HTML/XML文檔的全面指南,需要的朋友可以參考下2025-08-08
基于Python實(shí)現(xiàn)Word轉(zhuǎn)為txt格式的操作指南
在日常辦公和數(shù)據(jù)處理中,我們經(jīng)常需要將Word文檔(.docx或.doc格式)轉(zhuǎn)換為純文本(.txt格式),以便進(jìn)行內(nèi)容提取、數(shù)據(jù)分析等操作,本文將詳細(xì)給大家介紹基于Python實(shí)現(xiàn)Word轉(zhuǎn)為txt格式的操作指南,需要的朋友可以參考下2025-07-07

