# 如果xlrd运行报错,先卸载当前安装的xlrd
# pip uninstall xlrd
# 再安装低版本的xlrd
# pip install xlrd==1.2.0
import xlrd
import sys
import os
def read_excel_dict(excelPath,sheetName):
if not os.path.exists(excelPath):
print("ERROR!
excel不存在")
sys.exit()
wb = xlrd.open_workbook(excelPath) # 打开文件
sheet_names = wb.sheet_names() # 获取所有工作表名称
# 判断输入表名是否实际存在于excel内
if sheetName not in sheet_names:
print("ERROR!
输入表名错误,输入表名为:{}, 实际表名为:{}".format(sheetName, sheet_names))
sys.exit()
table = wb.sheet_by_name(sheetName)
key = table.row_values(0) # 取第一行作为key值
rowNum = table.nrows # 获取总行数
colNum = table.ncols # 获取总列数
if rowNum <= 1:
print("数据为空,总行数小于1")
else:
r = []
x = 1
for row in range(1,rowNum):
cell = {}
# cell['rowNum'] = row
values = table.row_values(x)
for col in range(colNum):
cell[key[col]] = values[col]
r.append(cell)
x += 1
return r
def read_excel_list(excelPath,sheetName):
if not os.path.exists(excelPath):
print("ERROR!
excel不存在")
sys.exit()
wb = xlrd.open_workbook(excelPath) # 打开文件
sheet_names = wb.sheet_names() # 获取所有工作表名称
# 判断输入表名是否实际存在于excel内
if sheetName not in sheet_names:
print("ERROR!
输入表名错误,输入表名为:{}, 实际表名为:{}".format(sheetName, sheet_names))
sys.exit()
table = wb.sheet_by_name(sheetName)
key = table.row_values(0) # 取第一行作为key值
rowNum = table.nrows # 获取总行数
colNum = table.ncols # 获取总列数
if rowNum <= 1:
print("数据为空,总行数小于1")
else:
r = []
x = 1
for row in range(1,rowNum):
cell = []
values = table.row_values(x)
for col in range(colNum):
cell.append(values[col])
r.append(cell)
x += 1
return r
if __name__ == "__main__":
filepath = "../Data/body.xlsx"
sheetName = "Sheet1"
data = read_excel_dict(filepath, sheetName)
print(data)
data = read_excel_list(filepath, sheetName)
print(data)