excel的数据组成形式我们已经确定完成之后,下来就是对excel中数据的读取和获取。
正好python给出了开源的组件,相关深入的API请查看官方文档
xlrd - xlrd 2.0.1 documentation
下来我们开始写读取excel的工具类
table = self.book.sheet_by_index(0) # 测试数据都存储在第一个sheet页 # 第一行为标题,因此从下标为1也就是第二行获取 for norw in range(1, table.nrows): # 我们先通过判断每个用例是否是运行的,也就是每行的第四列 if '否' == table.cell_value(norw, 3): # 如果是否,就跳过 continue title_list.append(table.cell_value(norw, 1)) # 追加用例标题 case_number = table.cell_value(norw, 0) # 拿到用例编号 path = table.cell_value(norw, 2) # 拿到执行路径 is_token = table.cell_value(norw, 4) # 拿到token操作 method = table.cell_value(norw, 5) # 拿到请求方式 file_var = table.cell_value(norw, 6) # 拿到文件对象的参数名 file_path = table.cell_value(norw, 7) # 上传文件路径 dependent = table.cell_value(norw, 8) # 依赖数据 data = table.cell_value(norw, 9) # 请求数据 expect = table.cell_value(norw, 10) # 预期结果 actual = table.cell_value(norw, 11) # 实际结果 value = [case_number, path, is_token, method, file_var, file_path, dependent, data, expect, actual]
方法详解:
我们都知道excel的组成形式是:
1.先有一个大的excel
2.下来有不同的sheet页组成
3.下来就是行和列
xlrd.open_workbook接收的是excel的路径
book.sheet_by_index(0)是通过下标去读取的(因为下标是固定的,还有通过sheet的名字读取,但是此框架固定就在第一个sheet页进行用例的编写)
table.nrows获取的是行数
table.cell_value(norw, 0) norw指的是第几行,后面参数指的是第几列
行跟列组成了读取单元格的内容
之后就组成了循环遍历第一个sheet页的所有单元格。
最后将excel拼接到一个list列表中,实现对excel所有数据的读取。