python學習6--python讀取excel資料
阿新 • • 發佈:2020-09-03
一、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'}]