python中xlrd模塊的使用詳解
打開(kāi)cmd輸入pip install xlrd安裝完成即可

下面以這個(gè)工作簿為例

import xlrd2、打開(kāi)工作薄
# filename是文件的路徑名稱(chēng)workbook = xlrd.open_workbook(filename=r’C:UsersWindows10Desktopxlsx文件.xlsx’)3、獲取需要操作的sheet表格(有三種方法)
①通過(guò)索引獲取
# 獲取第一個(gè)sheet表格table = workbook.sheets()[0]
②通過(guò)索引順序獲取
# 通過(guò)索引順序獲取table = workbook.sheet_by_index(0)
③通過(guò)sheet名稱(chēng)獲取
# 通過(guò)sheet名稱(chēng)獲取table = workbook.sheet_by_name(sheet_name=’Sheet1’)
補(bǔ)充:獲取工作薄中所有sheet名稱(chēng)
# 獲取工作薄中所有的sheet名稱(chēng)names = workbook.sheet_names()打印結(jié)果[’Sheet1’, ’Sheet2’, ’Sheet3’]三、行和列的操作
常用1:獲取sheet中有多少行和多少列
# 獲取sheet中有效行數(shù)row = table.nrowsprint(row)打印結(jié)果6
# 獲取sheet中有效列數(shù)col = table.ncolsprint(col)打印結(jié)果4
常用2:獲取一行中有多少列數(shù)據(jù)
# 返回該行的有效單元格長(zhǎng)度num = table.row_len(0)print(num)打印結(jié)果4
常用3:獲取指定行或者列中所有的數(shù)據(jù)
# rowx表示是獲取第幾行的數(shù)據(jù)# start_col表示從索引為多少開(kāi)始,end_colx表示從索引為多少結(jié)束,# end_colx為None表示結(jié)束沒(méi)有限制# 獲取指定行中的數(shù)據(jù)并以列表的形式返回table_list = table.row_values(rowx=0, start_colx=0, end_colx=None)print(table_list)打印結(jié)果[’渡劫(送千萬(wàn)元寶)’, ’新手禮包’, ’主角技能書(shū)*20,三級(jí)攻擊石*2,萌新相框*1’, ’nesHtg6Y’]
# colx表示是獲取第幾列的數(shù)據(jù)# start_rowx表示從索引為多少開(kāi)始,end_rowx表示從索引為多少結(jié)束,# end_rowx為None表示結(jié)束沒(méi)有限制# 獲取指定列中的數(shù)據(jù)并以列表的形式返回table_list = table.col_values(colx=0, start_rowx=0, end_rowx=None)print(table_list)打印結(jié)果[’渡劫(送千萬(wàn)元寶)’, ’渡劫(送千萬(wàn)元寶)’, ’渡劫(送千萬(wàn)元寶)’, ’渡劫(送千萬(wàn)元寶)’, ’名揚(yáng)沙城-殺豬爆充值’, ’名揚(yáng)沙城-殺豬爆充值’]
補(bǔ)充:了解即可
#返回由該列中所有的單元格對(duì)象組成的列表print(table.row(0)) #返回由該行中所有的單元格對(duì)象組成的列表print(table.row_slice(0)) #返回由該行中所有單元格的數(shù)據(jù)類(lèi)型組成的列表print(table.row_types(0, start_colx=0, end_colx=None)) 打印結(jié)果[text:’渡劫(送千萬(wàn)元寶)’, text:’新手禮包’, text:’主角技能書(shū)*20,三級(jí)攻擊石*2,萌新相框*1’, text:’nesHtg6Y’][text:’渡劫(送千萬(wàn)元寶)’, text:’新手禮包’, text:’主角技能書(shū)*20,三級(jí)攻擊石*2,萌新相框*1’, text:’nesHtg6Y’]array(’B’, [1, 1, 1, 1])
#返回由該列中所有的單元格對(duì)象組成的列表print(table.col(0, start_rowx=0, end_rowx=None)) #返回由該列中所有的單元格對(duì)象組成的列表print(table.col_slice(0, start_rowx=0, end_rowx=None)) #返回由該列中所有單元格的數(shù)據(jù)類(lèi)型組成的列表print(table.col_types(0, start_rowx=0, end_rowx=None)) 打印結(jié)果[text:’渡劫(送千萬(wàn)元寶)’, text:’渡劫(送千萬(wàn)元寶)’, text:’渡劫(送千萬(wàn)元寶)’, text:’渡劫(送千萬(wàn)元寶)’, text:’名揚(yáng)沙城-殺豬爆充值’, text:’名揚(yáng)沙城-殺豬爆充值’][text:’渡劫(送千萬(wàn)元寶)’, text:’渡劫(送千萬(wàn)元寶)’, text:’渡劫(送千萬(wàn)元寶)’, text:’渡劫(送千萬(wàn)元寶)’, text:’名揚(yáng)沙城-殺豬爆充值’, text:’名揚(yáng)沙城-殺豬爆充值’][1, 1, 1, 1, 1, 1]四、單元格的操作1、獲取單元中的值
# 獲取指定單元格內(nèi)的值value = table.cell_value(rowx=0, colx=1)print(value)打印結(jié)果新手禮包2、獲取單元格內(nèi)的組成對(duì)象和數(shù)據(jù)
value = table.cell(rowx=0, colx=1)print(value)打印結(jié)果text:’新手禮包’3、獲取單元格的數(shù)據(jù)類(lèi)型
python讀取excel中單元格的內(nèi)容返回的有5種類(lèi)型。ctype : 0 empty,1 string, 2 number, 3 date, 4 boolean, 5 error。即date的ctype=3,這時(shí)需要使用xlrd的xldate_as_tuple來(lái)處理為date格式,先判斷表格的ctype=3時(shí)xldate才能開(kāi)始操作。
value = table.cell_type(rowx=0, colx=1)print(value)五、案例
需求:獲取上面表格中的數(shù)據(jù)并依次打印出來(lái)
import xlrd# 打開(kāi)工作薄workbook = xlrd.open_workbook(r’C:UsersWindows10Desktopxlsx文件.xlsx’)# 獲取第一個(gè)sheet表格table = workbook.sheets()[0]# 獲取行數(shù)rows = table.nrows# 獲取列數(shù)cols = table.ncols# 循環(huán)獲取每行的數(shù)據(jù)for row in range(rows): for col in range(cols): value = table.cell_value(row, col) print(’第{}行{}列的數(shù)據(jù)為:{}’.format(row, col, value))打印結(jié)果第0行0列的數(shù)據(jù)為:渡劫(送千萬(wàn)元寶)第0行1列的數(shù)據(jù)為:新手禮包第0行2列的數(shù)據(jù)為:主角技能書(shū)*20,三級(jí)攻擊石*2,萌新相框*1第0行3列的數(shù)據(jù)為:nesHtg6Y第1行0列的數(shù)據(jù)為:渡劫(送千萬(wàn)元寶)第1行1列的數(shù)據(jù)為:特權(quán)禮包第1行2列的數(shù)據(jù)為:翅膀進(jìn)階丹*20,翅膀技能書(shū)*10,萌新氣泡*1第1行3列的數(shù)據(jù)為:QqBSc7VJ第2行0列的數(shù)據(jù)為:渡劫(送千萬(wàn)元寶)第2行1列的數(shù)據(jù)為:獨(dú)家禮包第2行2列的數(shù)據(jù)為:高級(jí)生命精華*10,升星石*20,法寶靈紋石*10第2行3列的數(shù)據(jù)為:NqsEdtBt第3行0列的數(shù)據(jù)為:渡劫(送千萬(wàn)元寶)第3行1列的數(shù)據(jù)為:預(yù)約禮包第3行2列的數(shù)據(jù)為:高級(jí)攻擊精華*10,生命神兵印記包*5,老司機(jī)氣泡*1第3行3列的數(shù)據(jù)為:P22vY6wa第4行0列的數(shù)據(jù)為:名揚(yáng)沙城-殺豬爆充值第4行1列的數(shù)據(jù)為:萬(wàn)元青龍第4行2列的數(shù)據(jù)為:凌霄青龍*1第4行3列的數(shù)據(jù)為:NB999第5行0列的數(shù)據(jù)為:名揚(yáng)沙城-殺豬爆充值第5行1列的數(shù)據(jù)為:尊貴VIP11第5行2列的數(shù)據(jù)為:5元*2、神羽*20、斗笠石(中)*20第5行3列的數(shù)據(jù)為:VIP999
到此這篇關(guān)于python中xlrd模塊的使用詳解的文章就介紹到這了,更多相關(guān)python xlrd模塊內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:

網(wǎng)公網(wǎng)安備