Excel的读取的脚本封装
第一次写博客,分享一些实用的脚本封装及封装思路,我主要是做软件测试,主要是从测试的角度对数据进行封装:
下面介绍我写的一个excel读取封装思路,网上能找到很多关于excel读取的资料,像xlrd,pandas,openpyxl等等都是比较成熟的模块,用起来都大同小异。
下面这个主要是用openpyxl写的,脚本存在bug,异常处理未考虑周全,欢迎各位大佬指出:
主要思路是把excel中的数据与表头结合形成一个键值对,存到字典中去,后期可以用ddt数据驱动的方式把全部数据解包获取。
1 from openpyxl import load_workbook 2 3 4 class read_excel: 5 def __init__(self, filename, sheetname): 6 7 self.filename = filename 8 self.sheetname = sheetname 9 10 def read_data(self): 11 wb = load_workbook(filename=self.filename) # 实例化excel 12 sh = wb[self.sheetname] # 获取sheet 13 all_excel_data = [] 14 for val in sh.iter_rows(values_only=True): 15 all_excel_data.append(val) 16 excel_title = None 17 case_data_list = [] 18 try: 19 excel_title = all_excel_data[0] # 获取表头 20 case_data_list = all_excel_data[1:] # 获取所有的用例数据 21 except: 22 print("{}:excel数据为空".format(self.sheetname)) 23 test_case_list = [] # 新建空列表,收集所有的测试用例数据 24 for case in case_data_list: 25 test_case = dict(zip(excel_title, case)) # 数据拼接,用表头与测试用例数据进行组装拼接成dict 26 test_case_list.append(test_case) # 将每次拼接好的测试用例添加到test_case_list 27 wb.close() 28 return test_case_list