Python读取excel文件
- 安装xlrd:pip install xlrd
- 按要求组装数据:列表形式、字典形式、类的形式
- 读取excel代码实现如下
1 import os 2 import xlrd 3 from day08_0325.read_excel.case_info import CaseInfo 4 5 # 列表的方式实现 [ [用例编号,用例名称],[],[] ] 外部一个列表元素一个用例 内部列表就是用例详情 6 def read_excel_data_convert_case_info(excel_path): 7 workbook=xlrd.open_workbook(excel_path)#打开excel工作簿 8 sheet=workbook.sheet_by_index(0)#选择工作表 9 case_infos=[] 10 rows=sheet.nrows#确定行数 11 cols=sheet.ncols#确定列数 12 for i in range(1,rows): 13 case_info=[] 14 for j in range(0,cols): 15 case_info.append(sheet.cell_value(i,j)) 16 case_infos.append(case_info) 17 return case_infos 18 19 20 # 类的方式实现 用来现实中的事物 描述用例 [CaseInfo(),CaseInfo(),CaseInfo()...] 21 def read_excel_data_convert_case_info_01(excel_path): 22 workbook=xlrd.open_workbook(excel_path) 23 sheet=workbook.sheet_by_index(0) 24 case_infos_01=[] 25 for i in range(1,sheet.nrows): 26 case_id = sheet.cell_value(i,0) 27 case_name = sheet.cell_value(i,1) 28 module = sheet.cell_value(i,2) 29 pri = sheet.cell_value(i,3) 30 case_step = sheet.cell_value(i,4) 31 except_result = sheet.cell_value(i,5) 32 case_info=CaseInfo(case_id,case_name,module,pri,case_step,except_result) 33 case_infos_01.append(case_info) 34 return case_infos_01 35 36 37 # 字典 38 # 方式一 39 # { 'case01':{'case_name': ,'module': ,},'case02':{} } 40 def read_excel_data_convert_case_info_02(excel_path): 41 workbook=xlrd.open_workbook(excel_path) 42 sheet=workbook.sheet_by_index(0) 43 dict_info = {} 44 for i in range(1, sheet.nrows): 45 dict_info[sheet.cell_value(i, 0)] = {'case_name': sheet.cell_value(i, 1), 46 'module': sheet.cell_value(i, 2), 47 'pri': sheet.cell_value(i, 3), 48 'case_step': sheet.cell_value(i, 4), 49 'except_result': sheet.cell_value(i, 5)} 50 return dict_info 51 52 # 方式二: 53 # [ {'case_no': ,'case_name': ,} , {'case_no': ,'case_name': ,} ] 54 def read_excel_data_convert_case_info_03(self): 55 workbook = xlrd.open_workbook(self.excel_path) 56 sheet = workbook.sheet_by_index(0) 57 case_infos_03 = [] 58 for i in range(1, sheet.nrows): 59 case_info = {} 60 case_info['case_id'] = sheet.cell_value(i, 0) 61 case_info['case_name'] = sheet.cell_value(i, 1) 62 case_info['module'] = sheet.cell_value(i, 2) 63 case_info['pri'] = sheet.cell_value(i, 3) 64 case_info['case_step'] = sheet.cell_value(i, 4) 65 case_info['except_result'] = sheet.cell_value(i, 5) 66 case_infos_03.append(case_info) 67 return case_infos_03 68 69 70 if __name__=='__main__': 71 current_path=os.path.dirname(__file__) 72 excel_path=os.path.join(current_path,'../test_case/case_data.xlsx') 73 print(read_excel_data_convert_case_info_02(excel_path)['case_01'])
上面的代码中类CaseInfo代码如下:
1 class CaseInfo: 2 def __init__(self, case_id, case_name, module, pri, case_step, except_result): 3 self.case_id = case_id 4 self.case_name = case_name 5 self.module = module 6 self.pri = pri 7 self.case_step = case_step 8 self.except_result = except_result
- 运行结果: