python中xlrd模組的使用詳解

2021-10-18 15:55:57 字數 4771 閱讀 6717

一、xlrd的安裝

開啟cmd輸入pip install xlrd安裝完成即可

在這裡插入描述

二、xlrd模組的使用

下面以這個工作簿為例

在這裡插入描述

1、匯入模組

1import xlrd

2、開啟工作薄12

# filename是檔案的路徑名稱

workbook = xlrd.open_workbook(filename=r'c:\users\windows10\desktop\xlsx檔案.xlsx')

3、獲取需要操作的sheet**(有三種方法)

①通過索引獲取12

# 獲取第乙個sheet**

table = workbook.sheets()[0]

②通過索引順序獲取12

# 通過索引順序獲取

table = workbook.sheet_by_index(0)

③通過sheet名稱獲取12

# 通過sheet名稱獲取

table = workbook.sheet_by_name(sheet_name='sheet1')

補充:獲取工作薄中所有sheet名稱12

345# 獲取工作薄中所有的sheet名稱

names = workbook.sheet_names()

列印結果

['sheet1', 'sheet2', 'sheet3']

三、行和列的操作

常用1:獲取sheet中有多少行和多少列12

34# 獲取sheet中有效行數

row = table.nrows

print(row)

列印結果612

3456

# 獲取sheet中有效列數

col = table.ncols

print(col)

列印結果

4常用2:獲取一行中有多少列資料12

3456

# 返回該行的有效單元格長度

num = table.row_len(0)

print(num)

列印結果

4常用3:獲取指定行或者列中所有的資料12

3456

789# rowx表示是獲取第幾行的資料

# start_col表示從索引為多少開始,end_colx表示從索引為多少結束,

# end_colx為none表示結束沒有限制

# 獲取指定行中的資料並以列表的形式返回

table_list = table.row_values(rowx=0, start_colx=0, end_colx=none)

print(table_list)

列印結果

['渡劫(送千萬元寶)', '新手禮包', '主角技能書*20,**攻擊石*2,萌新相框*1', 'neshtg6y']12

3456

789# colx表示是獲取第幾列的資料

# start_rowx表示從索引為多少開始,end_rowx表示從索引為多少結束,

# end_rowx為none表示結束沒有限制

# 獲取指定列中的資料並以列表的形式返回

table_list = table.col_values(colx=0, start_rowx=0, end_rowx=none)

print(table_list)

列印結果

['渡劫(送千萬元寶)', '渡劫(送千萬元寶)', '渡劫(送千萬元寶)', '渡劫(送千萬元寶)', '名揚沙城-殺豬爆充值', '名揚沙城-殺豬爆充值']

補充:了解即可12

3456

78910

11#返回由該列中所有的單元格物件組成的列表

print(table.row(0)) 

#返回由該行中所有的單元格物件組成的列表

print(table.row_slice(0)) 

#返回由該行中所有單元格的資料型別組成的列表

print(table.row_types(0, start_colx=0, end_colx=none)) 

列印結果

[text:'渡劫(送千萬元寶)', text:'新手禮包', text:'主角技能書*20,**攻擊石*2,萌新相框*1', text:'neshtg6y']

[text:'渡劫(送千萬元寶)', text:'新手禮包', text:'主角技能書*20,**攻擊石*2,萌新相框*1', text:'neshtg6y']

array('b', [1, 1, 1, 1])12

3456

78910

11#返回由該列中所有的單元格物件組成的列表

print(table.col(0, start_rowx=0, end_rowx=none)) 

#返回由該列中所有的單元格物件組成的列表

print(table.col_slice(0, start_rowx=0, end_rowx=none)) 

#返回由該列中所有單元格的資料型別組成的列表

print(table.col_types(0, start_rowx=0, end_rowx=none)) 

列印結果

[text:'渡劫(送千萬元寶)', text:'渡劫(送千萬元寶)', text:'渡劫(送千萬元寶)', text:'渡劫(送千萬元寶)', text:'名揚沙城-殺豬爆充值', text:'名揚沙城-殺豬爆充值']

[text:'渡劫(送千萬元寶)', text:'渡劫(送千萬元寶)', text:'渡劫(送千萬元寶)', text:'渡劫(送千萬元寶)', text:'名揚沙城-殺豬爆充值', text:'名揚沙城-殺豬爆充值']

[1, 1, 1, 1, 1, 1]

四、單元格的操作

1、獲取單元中的值12

3456

# 獲取指定單元格內的值

value = table.cell_value(rowx=0, colx=1)

print(value)

列印結果

新手禮包

2、獲取單元格內的組成物件和資料12

345value = table.cell(rowx=0, colx=1)

print(value)

列印結果

text:'新手禮包'

3、獲取單元格的資料型別

python讀取excel中單元格的內容返回的有5種型別。ctype : 0 empty,1 string, 2 number, 3 date, 4 boolean, 5 error。即date的ctype=3,這時需要使用xlrd的xldate_as_tuple來處理為date格式,先判斷**的ctype=3時xldate才能開始操作。12

value = table.cell_type(rowx=0, colx=1)

print(value)

五、案例

需求:獲取上面**中的資料並依次列印出來12

3456

78910

1112

1314

1516

1718

1920

2122

2324

2526

2728

2930

3132

3334

3536

3738

3940

41import xlrd

# 開啟工作薄

workbook = xlrd.open_workbook(r'c:\users\windows10\desktop\xlsx檔案.xlsx')

# 獲取第乙個sheet**

table = workbook.sheets()[0]

# 獲取行數

rows = table.nrows

# 獲取列數

cols = table.ncols

# 迴圈獲取每行的資料

for row in range(rows):

for col in range(cols):

value = table.cell_value(row, col)

print('第{}行{}列的資料為:{}'.format(row, col, value))

列印結果

第0行0列的資料為:渡劫(送千萬元寶)

第0行1列的資料為:新手禮包

第0行2列的資料為:主角技能書*20,**攻擊石*2,萌新相框*1

第0行3列的資料為:neshtg6y

第1行0列的資料為:渡劫(送千萬元寶)

第1行1列的資料為:特權禮包

第1行2列的資料為:翅膀高階丹*20,翅膀技能書*10,萌新氣泡*1

第1行3列的資料為:qqbsc7vj

第2行0列的資料為:渡劫(送千萬元寶)

第2行1列的資料為:獨家禮包

第2行2列的資料為:高階生命精華*10,公升星石*20,法寶靈紋石*10

第2行3列的資料為:nqsedtbt

第3行0列的資料為:渡劫(送千萬元寶)

第3行1列的資料為:預約禮包

第3行2列的資料為:高階攻擊精華*10,生命神兵印記包*5,老司機氣泡*1

第3行3列的資料為:p22vy6wa

第4行0列的資料為:名揚沙城-殺豬爆充值

第4行1列的資料為:萬元青龍

第4行2列的資料為:凌霄青龍*1

第4行3列的資料為:nb999

第5行0列的資料為:名揚沙城-殺豬爆充值

第5行1列的資料為:尊貴vip11

第5行2列的資料為:5元*2、神羽*20、斗笠石(中)*20

第5行3列的資料為:vip999

到此這篇關於python中xlrd模組的使用詳解的文章就介紹到這了

Python中的xlrd模組詳解

1 匯入模組 import xlrd2 開啟excel檔案讀取資料 data xlrd.open workbook filename 檔名以及路徑,如果檔名或者路徑中有中文,在前面加乙個r3 常用的函式 excel中最重要的方法就是對book和sheet的操作 a 獲取book中所有工作表的名字 n...

python中xlrd模組匯入Excel檔案

importxlrd 匯入讀excel的包f xlrd.open workbook r e pypractice yun doc a.xlsx 開啟乙個工作簿 table f.sheets 0 選取excel中的第一張 nrows table.nrows 獲取行數 ncols table.ncols...

Python中xlrd模組針對Excel

本文由下面三個方向來對python中的xlrd模組展開學習 1.什麼是xlrd模組?2.如何使用xlrd模組?即xlrd模組的方法 3.為什麼使用xlrd模組?一 什麼是xlrd模組?pip install xlrd3.anaconda環境下 使用jupyter編寫時選擇python3 可以直接im...