openpyxl读写Excel

小白一枚,初次学习Python,初次写博客???学习目的是使用Python做自动化测试

以下代码是读取Excel数据并把数据存放到一个list中

from openpyxl import load_workbook

class doExcel:

    def __init__(self,file,sheet):
        self.file = file
        self.sheet = sheet

    # 读取Excel数据
    def do_excel(self, phone_number):
        # 定位单元格并取值
        wb = load_workbook(self.file)
        # 定位表单
        sheet = wb[self.sheet]
        sheet_phone_number = wb[phone_number]
        # 获取sheet_phone_number表单第一行第一列的值
        tel_number = sheet_phone_number.cell(1, 1).value

        # 先获取表头数据
        title_data = []
        for i in range(1, sheet.max_column + 1):
            title_data.append(sheet.cell(1, i).value)

        test_data = []
        # 获取动态手机号码并赋值
        for i in range(2, sheet.max_row + 1):
            # 创建一个空字典,用于存放title和value
            dict_data = {}
            for j in range(1, sheet.max_column + 1):
                dict_data[title_data[j - 1]] = sheet.cell(i, j).value

            # 修改sheet_phone_number表单中的值并保存
            sheet_phone_number.cell(1, 1).value = tel_number + 1
            wb.save(file_name)
            
            # 判断该列的值是否包含'${tel}'
            if sheet.cell(i, 5).value.find('${tel}') != -1:
                # 字符串替换
                dict_data['param'] = sheet.cell(i, 5).value.replace('${tel}', str(phone_number))
            else:
                dict_data['param'] = sheet.cell(i, 5).value
            test_data.append(dict_data)

        return test_data

    # 清除指定行列数据
    def write_clear(self):
        wb = load_workbook(self.file)
        sheet = wb[self.sheet]

        for i in range(2, sheet.max_column + 1):
            # 每次执行前清空该列数据
            sheet.cell(i, 6).value = ''
            # 每次执行前清空该列数据
            sheet.cell(i, 7).value = ''
        # 保存
        wb.save(self.file)

    # 写回结果
    def write_back(self, row, actualResult, testResult):
        wb = load_workbook(self.file)
        sheet = wb[self.sheet]

        # 写入实际结果值
        sheet.cell(row, 7).value = actualResult  # 运算结果的实际值

        # 写入测试结果是通过还是不通过
        sheet.cell(row, 8).value = testResult

        # 保存
        wb.save(self.file)

以上代码do_excel返回值是:
[{'id': 1, 'HttpMethod': 'post', 'url': 'http://....../app/login', 'description': '正常登录', 'param': '{"mobile": 13400000008, "password": "123456"}', 'ExceptResult': None, 'ActualResult': None, 'TestResult': None}, {'id': 2, 'HttpMethod': 'post', 'url': 'http://....../app/login', 'description': '非正常登录', 'param': '{"mobile": 13400000008, "password": "123456"}', 'ExceptResult': None, 'ActualResult': None, 'TestResult': None}]

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值