封装excel数据层代码,log模块导入

xiaoxiaoCNDS 2020-06-26

封装excel操作代码,提高复用率

整体封装思想阐述:

表内用例格式构建

表头,case_id,title,data,expected

表体,测试用例数据

首先获取表体第一行的数据组成的列表

之后获取由二行开始的所有数据,

之后逐条将表头与数据zip封包,之后转换为字典。

注意点:

从excel中读取的数据,除了数值,其他不管保存的时候什么格式,读取出来都是str

解决该问参考使用eval()方法,本篇不赘述

上代码

class HandleExcel:
    """用来操作excel文件的类="""

    def __init__(self, filename, sheetname):
        """
        初始化对象属性
        :param filename: excel文件路径
        :param sheetname: 表单名
        """
        self.filename = filename
        self.sheetname = sheetname

    def read_data(self):
        """读取excel中的数据"""
        # 获取工作簿对象
        wb = openpyxl.load_workbook(self.filename)
        # 选择表单
        sh = wb[self.sheetname]
        # 按行获取所有的数据,转换为列表
        rows_data = list(sh.rows)
        # 创建一个空列表用来保存所有的用例数据
        cases_data = []
        # 获取表单中的表头数据,放入title这个列表中
        title = []
        for i in rows_data[0]:
            title.append(i.value)

        # 获取除表头之外的其他行数据
        for item in rows_data[1:]:
            # 每遍历出来一行数据,就创建一个空列表,来存放该行数据
            values = []
            for i in item:
                values.append(i.value)
            # 将该行的数据和表头进行打包,转换为字典
            case = dict(zip(title, values))
            # 将该行数据打包的字典,放入cases_data中
            cases_data.append(case)
        # 返回读取出来的所有数据
        return cases_data

    def write_data(self, row, column, value):
        """
        写入数据
        :param row: 行
        :param column: 列表
        :param value: 写入的值
        :return:

相关推荐