一、xlrd模塊介紹
1.xlrd是讀取excel表格數據;
2.支持xlsx和xls格式的excel表格
3.安裝方式:pip install xlrd
4.模塊導入方式:import xlrd
二、環境准備
1.先安裝xlrd模塊,打開cmd,輸入pip install xlrd在線安裝

三、基本操作
1.excle基本操作方法如下

import xlrd
#打開excle表格,參數是文件路徑
a=xlrd.open_workbook("E:\\sys_user.xls")
#table=a.sheets()[0] #通過索引順序獲取
# table=a.sheet_by_index(0) #通過索引順序獲取
table=a.sheet_by_name("user") #通過名稱獲取
nrows=table.nrows #獲取總行數
ncols=table.ncols #獲取總列數
print(nrows,ncols)
#獲取一行或一列的值,參數是第幾行
print(table.row_values(0)) #獲取第一行值
print(table.col_values(0)) #獲取第一列值
運行結果:
20 2 ['test1', 1.0] ['test1', 'test2', 'test3', 'test4', 'test5', 'test6', 'test7', 'test8', 'test9', 'test10', 'test11', 'test12', 'test13', 'test14', 'test15', 'test16', 'test17', 'test18', 'test19', 'test20']
三、excel存放數據
1.在excel中存放數據,第一行為標題,也就是對應字典里面的key值,如:username,passwd
2.如果excel數據中有純數字的一定要右鍵》設置單元格格式》文本格式,要不然讀取的數據是浮點數(先設置單元格格式后編輯,編輯成功左上角有小三角圖標)
注意,我嘗試先填寫數字,再設置文本,未顯示小三角圖標;將數字內容刪除,重寫填寫數字,顯示小三角圖標。

四、封裝讀取方法
1.最終讀取的數據是多個字典的list類型數據,第一行數據是字典里的key值,從第二行開始一一對應value值
2.封裝好后代碼如下:
import xlrd
a=xlrd.open_workbook("D:\\user.xlsx")
table=a.sheet_by_name("user")
nrows=table.nrows
ncols=table.ncols
print(nrows,ncols)#6,2
key=table.row_values(0)
result=[]
n=1
while n!=nrows:
d={}
v=table.row_values(n)
# print(v)
for i in range(ncols):#0,1
d[key[i]]=v[i]
result.append(d)
n+=1
# print(d)
print(result)
運行結果:
6 2
[{'username': 'test1', 'passwd': '3'}, {'username': 'test2', 'passwd': '4'}, {'username': 'test3', 'passwd': '5'}, {'username': 'test4', 'passwd': '6'}, {'username': 'test5', 'passwd': '7'}]
整理成方法,代碼如下:
import xlrd
def read_excel(filepath,sheetname):
a=xlrd.open_workbook(filepath)
table=a.sheet_by_name(sheetname)
result=[]
n=1
nrow=table.nrows
ncol=table.ncols
key=table.row_values(0)
while n!=nrow:
d={}
v=table.row_values(n)
for i in range(ncol):
d[key[i]]=v[i]
result.append(d)
n += 1
return result
print(read_excel("D:/user.xlsx","user"))
運行結果:
[{'username': 'test1', 'passwd': '3'}, {'username': 'test2', 'passwd': '4'}, {'username': 'test3', 'passwd': '5'}, {'username': 'test4', 'passwd': '6'}, {'username': 'test5', 'passwd': '7'}]
