讀取excel表格數據需要用到xlrd或者openpyxl模塊,所以先安裝xlrd/openpyxl:直接pip install xird/openpyxl
xlrd和openpyxl區別:
1.xlrd能處理的最大行數為65535,超過這個行數的文件就需要用到openpyxl,openpyxl最大支持1048576行
2.openpyxl不支持xls格式文件
xlrd模塊常用方法介紹:
打開excl文件:s = xlrd.open_workbook(“文件路徑”)
獲取表格:s.sheets()[0] = s.sheet_by_index(0) 獲取第一張表格; 注意:下標值是從0開始
s.sheet():獲取所以表單的索引
sheet = s.sheet_by_name("表名") 獲取指定表名的表
獲取表格的總行數:sheet.nrows
獲取表格的總列數:sheet.ncols
獲取指定行的數據:sheet.row_values(下標值),sheet.row_values(0,1,3)表示從去第2,3,4行的值
獲取指定行的數據:sheet.col_values(下標值)
獲取指定單元格數據:sheet.cell(a,b).value a表示行的下標值,b表示列的下標值;兩者可以調換位置;注意:不加.value取出的值前面會帶個text的東西
1.導入xlrd模塊
2.通過open.workbook()方法打開文件
3.通過sheets()[]方法獲取想要的表格
4.獲取總行數和總列數
5.取第一行的值作為字典的key
6.通過2個循環來根據行取對應列的值
代碼如下:
import xlrd
data = []
def read_xsls(xlsx_path):
data_xsls = xlrd.open_workbook(xlsx_path) #打開此地址下的exl文檔
sheet_name = data_xsls.sheets()[0] #進入第一張表
print(sheet_name)
sheet_name1 = data_xsls.sheet_by_index(0)
print(sheet_name1)
count_nrows = sheet_name.nrows #獲取總行數
# print(count_nrows)
count_nocls = sheet_name.ncols #獲得總列數
line_value = sheet_name.row_values(0)
for i in range(1,count_nrows):
data_1 = {}
for j in range(2,count_nocls):
data_1[line_value[j]]=sheet_name.cell(i,j) #根據行數來取對應列的值,並添加到字典中
# print(data_1)
data.append(data_1)
# print(data)
openpyxl用法簡介:
1.打開excel: s = openpyxl.load_workbook(文件路徑)
2.基本方法
sheet = s.sheetnames #獲取所有表格的名字
sheet = s.get_sheet_by_name(表格名) #根據表格名獲取該表格的數據
sheet = s[表格名] #根據表格名獲取該表格的數據
sheet.max_row() #獲取最大行數
sheet.max_column #獲取最大列數
sheet['A1'].value #獲取A1單元格的值
sheet.cell(a,b) #獲取a行,b列的值,a,b其中一個必須為1或以上