当前位置: 首页 > article >正文

工具层handle_excel

  • 该工具类利用openpyxl的load_workbook加载Excel,通过iter_rows按行迭代数据,将表头和用例数据用zip+dict组合成字典,通过list.append将字典(单条测试用例)追加到列表中,从而封装Excel数据解析工具。
模块/类方法/属性使用场景描述
openpyxlload_workbook()加载指定的 Excel 文件,返回一个 Workbook 对象。
Workbook 对象.sheetnames(属性)获取 Excel 文件中所有 Sheet 的名称列表。
[sheet_name](通过键访问)根据 Sheet 名称获取对应的 Worksheet 对象。
.iter_rows(values_only=True)按行迭代 Sheet 中的数据,values_only=True 表示返回单元格的实际值。
.close()关闭 Excel 文件,释放资源。
Python 内置函数list()将迭代器(如 iter_rows 的结果)转换为列表。
zip()将表头和数据按列组合,生成键值对。
dict()将 zip 生成的键值对转换为字典,形成单条用例数据。
list 对象.append()将单条用例数据(字典)追加到结果列表中。
from openpyxl import load_workbook


class HandleExcel:
    def __init__(self,file_name):  #file_name: 测试用例文件名称(绝对路径)
        self.wb_obj = load_workbook(filename=file_name) #load_workbook加载excel

        #获取所有excel中sheet的名称
        self.sheet_names = self.wb_obj.sheetnames

    def get_excel_test_cases(self,sheet_name):  #sheet_name: excel中sheet名称
        #临时变量存放数据
        cases_list = []  
        #获取指定表单对象
        sheet_obj = self.wb_obj[sheet_name]
        #iter_rows迭代所有行数据,按行读取封装成list输出结果类似于[('id','title'),(1,'登陆成功')],values_only是False返回对象,True返回单元格对应数据,datas获取表单sheet中所有数据
        datas = list(sheet_obj.iter_rows(values_only=True))
        #获取表头
        case_title = datas[0] 
        #获取表数据
        case_datas  = datas[1:] 
        #遍历每一行数据
        for case in case_datas:
            #zip(key,val)把两个元素压缩在一起,再把每一行数据使用dict转换成字典类型,zip函数是python的内置函数
            result = dict(zip(case_title,case))
            cases_list.append(result)
        self.close_file()
        return cases_list

    def close_file(self):
        #关闭excel
        self.wb_obj.close()  

if __name__ == '__main__':
      #存放excel测试数据的文件名(放本目录下的路径)
      cl = HandleExcel(file_name="case_data.xlsx",sheet_name="login")
      cl.get_excel_test_cases()


http://www.kler.cn/a/597604.html

相关文章:

  • 鱼书--学习2
  • MySQL 中,分库分表机制和分表分库策略
  • Ubuntu搭建Battery Historian环境
  • (八)Reactor响应式框架之核心特性
  • 5、MySQL为什么使用 B+树 来作索引【高频】
  • 矩阵可相似对角化
  • G-Star 校园开发者计划·黑科大|开源第一课之 Git 入门
  • 强化学习中循环神经网络在序列决策中的应用研究
  • 2025新版懒人精灵零基础安装调试+lua基础+UI设计交互+常用方法封装+项目实战+项目打包安装板块-视频教程(初学者必修课)
  • 基于javaweb的SpringBoot医院管理系统设计与实现(源码+文档+部署讲解)
  • maven在windows系统上的详细安装和配置
  • 无阻塞UI:通过Web Worker提升用户体验的新途径
  • 基于LabVIEW的Windows平台高速闭环控制
  • windows+ragflow+deepseek实战之一excel表查询
  • 第19章:StatefulSet:有状态应用部署最佳实践
  • dify案例分享-儿童故事绘本语音播报视频工作流
  • Lustre 语言的 Rust 生成相关的工作
  • 高考志愿填报管理系统基于Spring Boot SSM
  • 流程图软件推荐,好用的流程图工具分享
  • 西门子200smart之modbus_TCP(做主站与第三方设备)通讯