有很多朋友对从excel的取值不知道如何遍历的可以学习下面方法:
方式一:
excel样式:
from openpyxl import load_workbook from conf import read_path import os class DoExcel: def __init__(self,file_path,sheet_name): self.file_path=file_path self.sheet_name=sheet_name def do_excel(self): wb=load_workbook(self.file_path) sheet=wb[self.sheet_name] test_data=[] #所有行的数据存到这个列表里面 for i in range(2,sheet.max_row+1): sub_data={} #每一行用例的数据存在一个字典里面 sub_data['case_id']=sheet.cell(i,1).value sub_data['title']=sheet.cell(i,2).value sub_data['method']=sheet.cell(i,3).value sub_data['url']=sheet.cell(i,4).value sub_data['param']=sheet.cell(i,5).value test_data.append(sub_data) return test_data if __name__ == '__main__': path=os.path.join(read_path.test_data_path) test_data=DoExcel(path,'test_data').do_excel() print(test_data)
方式二:
代码如下:
import os from openpyxl import load_workbook from loguru import logger # 类与上面的代码/注释之间隔2行 class HandleExcel: # 类内部方法之间,用一行隔开。 def __init__(self,excel_path: str,sheet_name): """ 打开一个excel文件,然后加载进来。 :param excel_path: """ logger.info("当前打开的excel文件为:{}".format(excel_path)) try: self.wb = load_workbook(excel_path) except: logger.exception("excel文件加载失败!") raise self.select_sheet_by_name(sheet_name) def select_sheet_by_name(self,sheet_name): self.sh = self.wb[sheet_name] logger.info("当前正在操作的表单名是:{}".format(sheet_name)) def read_all_rows_data(self): """ 从选定的表单当中,第一行作为key. 将后面的每一行数据,与第一行拼接成一个字典数据,作为一条测试用例数据。 将所有测试用例数据,添加到一个列表当中。 :return: 测试用例数据列表 """ sh_all_datas = list(self.sh.values) # 每一行数据的keys keys = sh_all_datas[0] # 列表变量 - 存放表单当中的每一行数据 all_cases_datas = [] # 遍历表单表当中,从第2行开始的每一行测试数据,并与第一行的keys拼接成一个字典。 for values in sh_all_datas[1:]: one_case = dict(zip(keys, values)) logger.info("用例数据为:\n{}".format(one_case)) all_cases_datas.append(one_case) return all_cases_datas if __name__ == '__main__': # 得到excel文件的路径 file_dir = os.path.dirname(os.path.abspath(__file__)) # print(file_dir) excel_path = os.path.join(file_dir, "apitest.xlsx") # \print(excel_path) # 实例化HandleExcel类 he = HandleExcel(excel_path,"登录") # he.select_sheet_by_name("登录") cases = he.read_all_rows_data()
原文地址:http://www.cnblogs.com/crdhm12040605/p/16922548.html
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,请务用于商业用途!
3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员!
8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载
声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性