最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

利用Python第三方庫xlrd讀取Excel中數據實例代碼

 更新時間:2022年07月22日 14:25:10   作者:華仔仔coding  
python操作excel主要用到xlrd和xlwt這兩個庫,即xlrd是讀excel,xlwt是寫excel的庫,下面這篇文章主要給大家介紹了關于利用Python第三方庫xlrd讀取Excel中數據的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下

1. 安裝 xlrd 庫

Python 讀取 Excel 中的數據主要用到 xlrd 第三方庫。xlrd 其實就是兩個單詞的簡化拼接,我們可以把它拆開來看,xl 代表 excel, rd 代表 read, 合并起來就是 xlrd, 意思就是讀 excel 的第三方庫。

這種命名風格也正是我們推薦使用的,要做到 “顧名思義”,不要使用晦澀難懂,與所實現的功能毫無關聯(lián)的名稱。

OK, 廢話不多說了,下面我們就著手安裝 xlrd 庫,pip 命令如下:

pip install xlrd==1.2.0 -i https://mirrors.aliyun.com/pypi/simple

值得注意的是,我在安裝 xlrd 庫的時候,指定了 xlrd 的版本,即 xlrd==1.2.0, 這也是在實踐中積累的經驗哦,因為不指定版本總是會有各種狀況,為了確保不出錯,大家盡量按照我這樣安裝吧。否則,出錯可別找我哦!

2. 使用 xlrd 庫

2.1 打開 Excel 工作表對象

(咳咳,戰(zhàn)術咳嗽!) 首先,我們先梳理一下思路,把概念搞清楚。什么概念呢?就是大家知道什么是工作簿,什么是工作表,什么是單元格嗎?

平時我們說的 Excel 工作表文件,其實嚴格來說它是個工作簿。然后打開工作簿,里面有多個 Sheet, 我們把這個稱作 ”工作表“。之后,我們的數據是放在單元格里面的。

下面,讓我們再用圖片的形式展示,一起要分清概念。

工作簿:

工作表:

單元格:

好的,那么使用 xlrd 讀取 Excel 表中的數據的時候也應按照:工作簿 -> 工作表 -> 單元格,這樣的過程去讀取數據的。

那么,打開工作對象的代碼如下:

import xlrd

# 打開工作簿
workbook = xlrd.open_workbook(r'C:\Users\Desktop\工作簿1.xlsx')
# 三種方式獲取工作表
# worksheet = workbook.sheet_by_index(0)
# worksheet = workbook.sheets()[0]        
worksheet = workbook.sheet_by_name('Sheet1')

代碼解析:

  1. 首先導入安裝的第三方庫 xlrd.
  2. 之后,使用 xlrd 庫下的方法 open_workbook(), 打開一個工作簿,方法里的參數為工作簿的路徑。
  3. 最后,根據拿到的工作簿對象,指定獲取的工作表。當然了,獲取工作表的方法有三種,分別是根據索引和根據工作表名稱獲取,索引是從0開始的。只要使用一種方式即可,這里我推薦使用根據工作表名稱獲取。

2.2 讀取單個單元格數據

那么我們在上一小節(jié)打開了工作表對象之后,下面就要獲取表里的單元格數據了呀!如何獲取單元格數據呢?請看下面的代碼:

import xlrd

# 打開工作簿
workbook = xlrd.open_workbook(r'C:\Users\Desktop\工作簿1.xlsx')
# 獲取工作表
worksheet = workbook.sheet_by_name('Sheet1')
# 獲取單元格數據的兩種方式
# cell_value = worksheet.cell(0, 0).value
cell_value = worksheet.cell_value(0, 0)
print(cell_value)

代碼解析:

獲取單元格數據的方法也很簡單。這里提供了兩種方法,都可以獲取單元格數據,大家只要根據自己習慣,掌握一種即可。例如,我這里使用的是 cell_value() 方法,方法里傳遞的是單元格的索引。單元格的索引是二維的,第一個參數是所在行,第二個參數是所在列。需要注意的是,所有的索引都是從 0 開始計數的。

2.3 讀取多個單元格數據

上一小節(jié)中,我們使用了 cell_value() 方法獲取單個單元格數據,但是這種方式未免效率過于低下了,現在我們想一次性獲取整行或者整列的數據,該如何去做呢 ?請看下面的代碼:

import xlrd

# 打開工作簿
workbook = xlrd.open_workbook(r'C:\Users\Desktop\工作簿1.xlsx')
# 獲取工作表
worksheet = workbook.sheet_by_name('Sheet1')
# 獲取第一行所有單元格數據
row_value = workbookt.row(0)
# 獲取第一列所有單元格數據
col_value = workbook.col(0)

代碼解析:

與 2.2 小節(jié)不同的是,我們通過調用方法 row() 和 col() 分別獲取某行和某列所有單元格數據,row() 和 col() 內傳入的參數為索引,索引從 0 開始計數。例如,row(0) 表示獲取第一行所有單元格數據,row(1) 表示獲取第二行所有單元格數據。

那么我們運行上面的代碼段,運行結果如下所示:

[text:'班級', text:'學號', text:'姓名', text:'成績']  # row(0) 的結果值
[text:'班級']     # col(0) 的結果值

通過觀察運行結果,我們發(fā)現運行的結果都是以列表的形式展示的。值得注意的是,列表的數值并不是字典格式,盡管這和 Python 中字典格式完全一樣,實際上列表中元素的類型應該是 <class 'xlrd.sheet.Cell'>, 這是 xlrd 中的 cell 對象,即單元格對象。單元格對象有 value 屬性,因此我們可以通過遍歷列表獲得每一個 cell 對象,然后通過 value 屬性取出每一個 cell 的值。

改造后的代碼如下所示:

import xlrd

# 打開工作簿
workbook = xlrd.open_workbook(r'C:\Users\Desktop\工作簿1.xlsx')
# 獲取工作表
worksheet = workbook.sheet_by_name('Sheet1')

for i in worksheet.row(0):
    print(i.value)  # 獲取單元格數據
for i in worksheet.col(0):
    print(i.value)  # 獲取單元格數據

2.3 讀取所有單元格數據

在上一小節(jié)中,我們學習了獲取多個單元格數據,也就是整行或整列獲取數據,這樣獲取數據的粒度更大,效率自然也更高。那么如果說,我想獲取 Sheet 表中所有的數據又該怎么做呢?

要想獲取 Sheet 表中所有單元格數據,就得知道 Sheet 表有多少行以及多少列。這樣,我們根據行數和列數,才能獲取 Sheet 表所有數據啊。xlrd 中 worksheet 對象有兩個屬性 nrows 和 ncols, 它們分別表示當前的 Sheet 表的行數和列數。

獲取所有單元格數據的代碼如下所示:

import xlrd

# 打開工作簿
workbook = xlrd.open_workbook(r'C:\Users\Desktop\工作簿1.xlsx')
# 獲取工作表
worksheet = workbook.sheet_by_name('Sheet1')
# 根據行獲取所有單元格數據
for row in range(worksheet.nrows):
    for i in worksheet.row(row):
        print(i.value)
# 根據列獲取單元格數據  
for col in range(worksheet.ncols):
    for i in worksheet.col(col):
        print(i.value)

代碼解析:

上面的代碼中,輸出的結果應該都是所有單元格數據,只不過分別從行和列的角度出發(fā)獲取單元格數據。其實,還可以用 cell_value() 方法結合 nrows 和 ncols 屬性獲取所有單元格數據,這種方法留給大家自己去嘗試吧!

附:行、列操作

獲取全行數據、切片、全行類型、行的有效單元格數等

# # 獲取整行和整列的值(數組)
k = 2
rows = sheet1_content1.row_values(k); # 獲取第3行內容  row_values(rowx=2, start_colx=0, end_colx=None)
cols = sheet1_content1.col_values(k); # 獲取第3列內容
 
###   行操作 對應列操作把 row 換成 col
print(sheet1Name,'第',k+1,'行內容為',rows) 
print(sheet1_content1.row_slice(rowx=k))#返回由該行中所有的單元格對象類型及對象組成的列表
print(sheet1_content1.row_types(rowx=k, start_colx=0, end_colx=None))#返回由該行中所有的單元格對象類型及對象組成的列表
print(sheet1_content1.row(rowx=k))#返回由該行中所有的單元格對象類型及對象組成的列表
print(sheet1_content1.row_len(rowx=k)) #返回該行的有效單元格長度
    # # 5. 獲取單元格內容(三種方式)
print(sheet1_content1.cell(0, 1).value)
print(sheet1_content1.cell_value(0, 1))
print(sheet1_content1.row(0)[1].value)
# print(sheet1_content1.row(10)[10].value) ## 超出索引長度會報錯

3. 總結

通過上面的學習,相信大家對 xlrd 第三方庫的安裝以及使用第三方庫讀取 Excel 中的數據的方法有了一定的掌握。學習了讀取操作之后,可以通過下一篇博客《使用 Python 第三方庫 xlwt 寫入數據到 Excel 工作表》學習向 Excel 工作表寫入數據。

到此這篇關于利用Python第三方庫xlrd讀取Excel中數據的文章就介紹到這了,更多相關Python xlrd讀取Excel數據內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 微信跳一跳游戲python腳本

    微信跳一跳游戲python腳本

    這篇文章主要為大家詳細介紹了微信跳一跳游戲python腳本,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • Python單例模式的四種創(chuàng)建方式實例解析

    Python單例模式的四種創(chuàng)建方式實例解析

    這篇文章主要介紹了Python單例模式的四種創(chuàng)建方式實例解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-03-03
  • Python利用Faiss庫實現ANN近鄰搜索的方法詳解

    Python利用Faiss庫實現ANN近鄰搜索的方法詳解

    這篇文章主要介紹了Python利用Faiss庫實現ANN近鄰搜索的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2020-08-08
  • 利用Python繪制好看的玫瑰花圖

    利用Python繪制好看的玫瑰花圖

    玫瑰花圖是節(jié)理統(tǒng)計方式之一,方法簡便,形象醒目,比較清楚地反映出主要節(jié)理的方向,有助于分析區(qū)域構造。本文將用Python繪制好看的玫瑰花圖,感興趣的可以了解一下
    2022-05-05
  • python 讀取二進制 顯示圖片案例

    python 讀取二進制 顯示圖片案例

    這篇文章主要介紹了python 讀取二進制 顯示圖片案例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04
  • python實現將漢字保存成文本的方法

    python實現將漢字保存成文本的方法

    今天小編就為大家分享一篇python實現將漢字保存成文本的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-11-11
  • python 獲取utc時間轉化為本地時間的方法

    python 獲取utc時間轉化為本地時間的方法

    今天小編就為大家分享一篇python 獲取utc時間轉化為本地時間的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • Python入門學習之Python流處理過程

    Python入門學習之Python流處理過程

    本篇文章屬于Python入門篇,本文主要教大家學習Python流處理過程,通過Faust流處理庫來為大家詳細講解,有需要的朋友可以借鑒參考下
    2021-09-09
  • 解決pytorch多GPU訓練保存的模型,在單GPU環(huán)境下加載出錯問題

    解決pytorch多GPU訓練保存的模型,在單GPU環(huán)境下加載出錯問題

    這篇文章主要介紹了解決pytorch多GPU訓練保存的模型,在單GPU環(huán)境下加載出錯問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • python多線程實現動態(tài)圖繪制

    python多線程實現動態(tài)圖繪制

    這篇文章主要介紹了python多線程實現動態(tài)圖繪制,文章基于Python的相資料展開動態(tài)圖的繪制相關內容,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-04-04

最新評論

邹城市| 福清市| 灵台县| 台湾省| 万年县| 新巴尔虎右旗| 通化县| 仁寿县| 曲沃县| 交城县| 庆元县| 深水埗区| 房山区| 黄山市| 商洛市| 定远县| 太湖县| 当雄县| 普定县| 缙云县| 宜君县| 龙川县| 石泉县| 得荣县| 胶南市| 北辰区| 济源市| 瑞安市| 昆明市| 滦平县| 洛川县| 疏附县| 英超| 新晃| 镇原县| 南雄市| 额济纳旗| 扶风县| 屏南县| 盐城市| 南安市|