沈三废

导航

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

 

 

 



posted on 2021-08-25 20:21  沈三废  阅读(126)  评论(0编辑  收藏  举报