前言:首先提前祝大家圣诞节快乐,今天公司举办Party,五点半开始,哈哈,我先来摸个鱼,,,,今天分享我学习到的openpyxl的封装,针对我的测试用例的数据处理以及使用。

很多文员在工作中都需要用到word、ppt、excel,前两者还算好处理。excel简直就是一生之敌,每天都在遭受公式和数据统计的折磨。这里强烈为大家推荐openpyxl,处理excel的一款神器。

1.openpyxl

  • 命令提示符内:pip install openxl
  • pycharm->Terminal内:pipenv install openpyxl(已经使用pipenv创建过虚拟环境的用这个)

2.上代码

from openpyxl import load_workbookclass ReadExcel:def __init__(self, file, sheet):""":param file: 需要解析的excel文件:param sheet:  sheet表"""self.sheet_name = load_workbook(filename=file)  # 打开文件self.sheet_values = self.sheet_name[sheet]  # 打开对应的sheet表def read_excel(self):data = []  # 定义一个列表接收每一组数据title = {}  # 定义一个字典for i in range(1, self.sheet_values.max_column + 1):title[i] = self.sheet_values.cell(1, i).value  # 遍历最大列依次获取每个单元格的valuefor i in range(2, self.sheet_values.max_row + 1):  # 从第2行开始遍历最大行values = {}for j in range(1, self.sheet_values.max_column + 1):  # 从第2行第1列开始遍历单元格# 获取每个单元格的数据后,通过title去匹配标题对应的value数据values[title[j]] = self.sheet_values.cell(i, j).value data.append(values)  # 把每一组数据添加至data列表内# [{key1: vlaue1, key2: value2},{...},...]return data

看不懂的老铁要去补一下for循环和openpyxl库的基本操作了。

title首先里面存储的都是{'1':'id','2':'title','3':'mode','4':'interface'...}这种形式,当代码执行到values[title[j]] = self.sheet_values.cell(i, j).value这一行的时候,title[j]拿到的刚好是title字典里面对应的key,所以values[title字典里的value]=遍历的单元格数据,就可以拿到上面数据形式里面的每一组数据,最后在append添加到列表里面

可以自己拿到代码传入文件自己跑跑,理解一下

3.执行一下

  1. 实例化这个类,传入excel的路径和sheet表名称
  2. 然后通过实例调用解析数据的函数read_excel()
  3. 打印读取到的数据

a.读取出来的数据形式

[
{'key1':'value1','key2':'value1','key3':'value1'},
{'key1':'value2','key2':'value2','key3':'value2'},
{'key1':'value3','key2':'value3','key3':'value3'},
{'key1':'value4','key2':'value4','key3':'value4'},
{'key1':'value5','key2':'value5','key3':'value5'}
]
  • 以列表的形式读出每一组数据,每组数据又是字典的形式,每组数据内的key都是相同的,不同的是value,这样我们在做接口测试的时候,可以通过指定的key去拿到每组不同的数据,以达到自动化的效果

分享完成,说是分享,其实是记录,如果有人看的的话,刚好能看懂的话,最好不过啦,这个封装只适合我的excel文档,非通用的,除非你按着我的excel文档形式来写测试用例,具体的测试用例格式在我第一篇文章。

带薪摸鱼的第三天之封装openpyxl相关推荐

  1. 岂有此理? 珍藏多年的工具让我实现了带薪摸鱼自由

    资本是噬血的,因此打工人最有效的抵抗资本的方法就是上班划水,带薪摸鱼,但前提是你要先搞完自己手上的工作才行,今天就给大家推荐几款我常用的在线工具,每一款都能让你提高不少工作效率. drawio (ht ...

  2. 牛逼|珍藏多年的工具让我实现了带薪摸鱼自由

    文 | 豆豆 来源:Python 技术「ID: pythonall」 资本是噬血的,因此打工人最有效的抵抗资本的方法就是上班划水,带薪摸鱼,但前提是你要先搞完自己手上的工作才行,今天就给大家推荐几款我 ...

  3. 放假前的最后一次带薪摸鱼

    十一假期写的文章,竟然忘记发了.现在补上,还晚吗? 明天就是假期了,给小伙伴们聊聊我的一些心里话. 我在苏州的时候,国庆假期通常会选择回洛阳,坐上需要 15 个小时左右的绿皮火车,到了洛阳后再坐俩小时 ...

  4. 我去!三面字节跳动,竟次次败,带薪摸鱼偷刷阿里老哥的面试宝典,成功上岸!

    你好,非常高兴地通知你,通过了面试评估和讨论,我们诚挚地邀请你加入字节跳动...... 前几天,有朋友去目前主流的大型互联网公司面试(阿里巴巴.京东.美团.腾讯),面试回来之后会发给我一些面试题.有个 ...

  5. “带薪摸鱼”偷刷阿里老哥的面经宝典,三次挑战字节,终斩offer,修成正果!

    你好,非常高兴地通知你,通过了面试评估和讨论,我们诚挚地邀请你加入字节跳动...... 前几天,有朋友去目前主流的大型互联网公司面试(阿里巴巴.京东.美团.腾讯),面试回来之后会发给我一些面试题.有个 ...

  6. 寒武纪加速平台(MLU200系列) 摸鱼指南(三)--- 模型移植-分割网络实例

    PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 环境说明 Ubuntu 18.04 MLU270 加速卡一张 寒 ...

  7. 10 个神奇的网站,助力带薪摸鱼

    前言 在日常工作中,为了提高工作时的效率,我常常会在闲暇时光去网上冲冲浪,寻找那些能够给我工作工作带来帮助的网站或者 APP.而随着时间的推移,我的收藏夹藏货越来越满了.秉承着独乐乐不如众乐乐,就想着 ...

  8. 推荐几个在大厂996,却一心想要按时下班的公众号主和他们的工作(摸鱼)心得...

    大家做程序员这一行的,都知道在互联网行业有的时候忙是真忙,闲也是真的闲,但是呢没活你也得给我加班...那除了咱们都知道滴对抗压榨的三大手段--带薪拉屎.带薪抽烟.带薪遛弯外呢(我没干过,别瞎猜),还有 ...

  9. 寒武纪加速平台(MLU200系列) 摸鱼指南(四)--- 边缘端实例程序分析

    PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 环境说明 MLU220 开发板 Ubuntu18.04 + ML ...

最新文章

  1. java工程打包时进行签名_使用Java SDK实现离线签名
  2. redis cluster集群选主
  3. 远程访问ubuntu下mysql的问题
  4. B. Bogosort codeforces(思维)
  5. 上架相关——App Store 上架流程
  6. nmon监控linux内存,使用Nmon监控Linux系统性能
  7. button设置disabled属性不生效_jQuery属性节点
  8. 产品经理必知的数据指标
  9. CAN笔记(11) 位时序
  10. 如何添加页签_【康复晓讲台】不同失能者如何选择适合自己的轮椅(二)
  11. android 怎么获取app 字体颜色,Android APP使用自定义字体实现方法
  12. es6 语法 (类与对象)
  13. 蝙蝠算法c语言,求解0-1背包问题的二进制蝙蝠算法
  14. Silverlight 4 RC发布和详细更新
  15. 个税服务器系统繁忙,2021个人所得税系统异常进不去怎么办?系统繁忙请稍后再试怎么回事...
  16. js如何实现页面跳转(大全)
  17. 未来十年公务员、事业单位职员以及国企人员的前景?
  18. Win8.1开始菜单Classic Shell 4.0上手
  19. NISP网络信息安全面试怎么选择(六)NISP管理中心
  20. 用pigz来加速解压tar.gz

热门文章

  1. Android之RootTools框架简单使用
  2. 怎么正版登录我的世界java_【正版】求问正版登陆到底是怎么登陆的TAT【】【】【】【】【】...
  3. AutoAssign
  4. 爱贝壳 教研云 动画执行流程和实现猜测
  5. 服务医学,基于目标检测模型实现细胞检测识别
  6. linux下格式化硬盘脚本
  7. unity自动化生成脚本工具
  8. 【Vue3 造轮子项目 ------ kaite-ui】基于vue3.0 + vite + TypeScript 实现一个UI框架 - kaiteUI
  9. EnlightenGAN:Deep Light Enhancement Without Paired Supervision阅读札记
  10. 零代码实现EDI标准报文转换