工具层handle_excel

server/2025/3/26 0:26:36/
  • 该工具类利用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()将单条用例数据(字典)追加到结果列表中。
python">from openpyxl import load_workbookclass 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.sheetnamesdef 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_listdef close_file(self):#关闭excelself.wb_obj.close()  if __name__ == '__main__':#存放excel测试数据的文件名(放本目录下的路径)cl = HandleExcel(file_name="case_data.xlsx",sheet_name="login")cl.get_excel_test_cases()


http://www.ppmy.cn/server/178528.html

相关文章

2024 浅浅总结

写在前面:【财富自由计算助手】已上线,快算算财富自由要多少 愿你有一个灿烂的前程 愿你有情人终成眷属 愿你在尘世获得幸福 ——《海子的诗》 借着今天,浅浅写下这大半年的一些收获吧。 01 认识到了系统的重要性。 系统至上&#xf…

画一个分布式系统架构图,标注服务注册、网关、熔断

画一个分布式系统架构图,标注服务注册、网关、熔断。 整体架构 这是一个典型的微服务架构,包括客户端、网关、服务注册中心、多个微服务实例以及数据库/缓存。以下是各组件的布局和功能: 1.客户端(Client)&#xff1…

校园自习室预约小程序(源码+部署教程)

运行环境 校园自习室预约小程序运行环境如下: • 前端:uniapp Vue • 后端:Node.js • IDE工具:Visual Studio Code HBuilderX 微信开发者工具 • 技术栈:uniapp Node.js Vue MySQL 主要功能 前台&#x…

常考计算机操作系统面试习题(三上)

目录 1. 为何要引入与设备的无关性?如何实现设备的独立性? 2. 页面置换先进先出算法 3. 页面置换先进先出算法,4个页框 4. 进程优先级调度算法 5. 短作业优先调度策略 6. 平均内存访问时间计算 7. 页式存储和段式存储的物理地址计算 …

AWS 日本东京 EC2 VPS 性能、线路评测

原文链接更好的阅读体验:AWS 日本东京 EC2 VPS 性能、线路评测 本期详细记录 AWS EC2 日本区域 VPS 的性能和主要的大陆路由速度情况,方便自己以后查阅。这台 VPS 是 AWS 新用户十二个月免费机器,类型配置不高,主要是看网络情况&…

数字孪生的建模师blender和maya你更喜欢用哪个?

hello宝子们...我们是艾斯视觉擅长ui设计和前端数字孪生、大数据、三维建模、三维动画10年经验!希望我的分享能帮助到您!如需帮助可以评论关注私信我们一起探讨!致敬感谢感恩! 在数字孪生领域,建模师们常常面临一个抉择:使用 Blender 还是 Maya&#xff…

Linux文件挂载新文件夹,隐藏老文件夹问题

当你在Linux中将一个文件系统挂载到目录A时,该目录原有的内容(包括子目录B和C)会暂时被隐藏,取而代之的是新挂载的文件系统的内容。这是Linux挂载机制的标准行为。以下详细说明: 关键机制: 覆盖原有内容: • 目录A在挂载前是一个普通目录,包含子目录B和C。 • 当执行 m…

ES集群的部署

实验步骤 实验目的: 验证ES集群的容错性、扩展性数据分布与查询性能优化。 环境准备​ ​1、准备两台服务器 服务器 1、10.1.1.20 cpu 2核 内存:4G 硬盘100G 2、10.1.1.21 cpu 2核 内存:4G 硬盘100G 2、修改两台静态ip 3、关闭防…