注:没有python基础的同学,请先移步"python基础专栏"

https://blog.csdn.net/annlin_/category_11671481.html
目录

一、接口自动化做什么?

二、为什么学openpyxl?

三、开始学习

1、安装:pip install openpyxl

2、excel组成:xlsx文件、sheet表单、单元格

3、读取excel数据

4、往excel写或者修改数据(自动化阶段,不太用的上)

一、接口自动化做什么?

1、接口自动化,就是获取用例,根据用例数据(数据驱动)去发请求,结束后查看测试结果
2、接口自动化就是在围绕全局变量、参数传递、参数化来做的

二、为什么学openpyxl?

1、openpyxl是用来操作excel
2、数据驱动(接口请求参数的数据都放在excel)
3、测开阶段用数据库来管理用例,目前使用excel来管理用例

三、开始学习

1、安装:pip install openpyxl

2、excel组成:xlsx文件、sheet表单、单元格

3、读取excel数据

1)、导入模块

# 导入openpyxl包中的加载方法load_workbook
from openpyxl import load_workbook

2)、获取excel文件对象

示例文件:case_data.xlsx

load_workbook(filename, read_only=False, keep_vba=KEEP_VBA,data_only=False,         keep_links=True)

    参数:filename:excel文件名称read_only=False:只读,不可编辑data_only=False:只读取公式,True:读取计算结果该方法返回的是一个对象
# 将获取到的excel对象赋值给wb_obj
wb_obj = load_workbook(filename="case_data.xlsx", read_only=False)
# 结果为<openpyxl.workbook.workbook.Workbook object at 0x7f87f06158d0>

3)、获取sheet表单对象

方法1,获取所有的表单名称组成的列表

names = wb_obj.sheetnames
print(names)
# 输出为['login', 'upload']

方法2,根据名字获取,这个方法是比较常用的

sheet_obj = wb_obj["login"]
print(sheet_obj)
# 输出为<Worksheet "login">一个表单对象

方法3,根据索引获取

sheet_obj = wb_obj.worksheets[0]
print(sheet_obj)
# 输出为<Worksheet "login">一个表单对象

4)、获取单元格内容

方法1,使用行号获取

# 获取单元格对象sheet_obj["单元格标识"]
cell_obj = sheet_obj["B3"]
# 获取单元格内容
value = cell_obj.value
print(value)
# 输出结果为:校验短信

方法2,使用具体的行列号获取

# 使用cell(行号,列号)方法获取
res = sheet_obj.cell(2, 6)
# 将获取到的对象值读出来
res = res.value
print(res)
# 输出为:
#  {
#    "mobile": "#mobile#"
#  }

5)、每次使用完要关闭文件

wb_obj.close()

6)、行操作的两种方法

方法1:按行获取内容,先获取最大行,再获取所有行号,然后使用行号循环去取每一行的内容。这种方法不智能,仅作为了解,可以熟悉一下获取原理

# 行操作
# 按行获取
max_row = sheet_obj.max_row  # 获取最大行
max_column = sheet_obj.max_column  # 获取最大列
print(max_row, max_column)  # 输出4 10 (最大4行10列)
# 获取航对象
res = sheet_obj.rows
print(res)
# 输出<generator object Worksheet._cells_by_row at 0x7fa889f335d0>是一个生成器,
# 从生成器中获取单元格的对象(元组)
for obj in res:print(obj) # 输出为(<Cell 'login'.A1>, <Cell 'login'.B1>, <Cell 'login'.C1>, <Cell 'login'.D1>, <Cell 'login'.E1>......的元组# 从元组中获取行号for i in obj:print(i) # 输出为A1,B1,C1....A2,B2.....# 获取每一行的值,等同于print(A1.value)print(i.value)# 输出为每一个单元格的值

方法2:行切片获取,使用如下方法iter_rows(min_row=None,max_rows=None,min_col=None,max_col=None,values_only=False)# 参数说明
# min_row=None,起始行的索引值(从1开始,int类型,默认1)
# max_row=None,结束行的索引值(从1开始,int类型,默认最大行的值)
# min_col=None,起始列的索引值(从1开始,int类型,默认1)
# max_col=None,结束列的索引值(从1开始,int类型,默认最大列的值)
# (重点)values_only=False,False返回单元格对象,True返回单元格对应的数据
# 切片原则是两头都包含,包含起始索引位置也包含索引结束位置

# 行切片
result = sheet_obj.iter_rows(min_row=None, max_row=None, min_col=None, max_col=None, values_only=True)
# 返回的是生成器,所以需要使用list转一下
print(list(result))
# 输出结果为[('id', 'title', 'method', 'is_upload', 'url', 'data', 'replace_sql', 'expected_data', 'extract_data', 'check'), ......]。
# 将每一行放在一个元组里,所有的行元组组成一个列表

6)、列切片,使用iter_cols()方法,用法同上述的行切片

result = sheet_obj.iter_cols(min_row=None, max_row=None, min_col=None, max_col=None, values_only=True)
print(list(result))
# 输出结果为:[('id', 1, 2, 3, None), ('title', '发送短信', '校验短信', '用户注册', '写进去的数据'), ('method', 'put', 'put', 'put', 'test_demo'),.....]
# 每一列的数据组成一个元组,所有的列元组组成一个列表。

4、往excel写或者修改数据(自动化阶段,不太用的上)

from openpyxl import load_workbookwb_obj = load_workbook(filename="case_data.xlsx")
sheet_obj = wb_obj["login"]
# 这里有一个坑,修改数据或者写数据的之前,要先关掉文件,不然写不进去
# 写数据方法1,通过给单元格复制,修改数据或者写数据
sheet_obj["B3"] = "写进去的数据"
# 写数据方法2,使用具体的行列号,修改或者写数据
res = sheet_obj.cell(row=2, column=6, value="test_demo")
# 写完之后需要保存一下
wb_obj.save("case_data.xlsx")
wb_obj.close()

(1)接口自动化之openpyxl操作excel相关推荐

  1. 包无法安装_详细教程 | 安装Python编程环境以及使用OpenpyXl操作Excel

    详细教程 | 安装Python编程环境以及使用OpenpyXl操作Excel 注意:下列教程为 Windows7 64位:Windows 10有部分步骤有差异,请参考使用! 01 下载Python程序 ...

  2. python openpyxl 操作excel xlrd.biffh.XLRDError: Excel xlsx file; not supported错误修改

    python xlrd/openpyxl 操作excel xlrd.biffh.XLRDError: Excel xlsx file; not supported错误修改 代码: 错误: excel读 ...

  3. python openpyxl 操作excel ,使用 conditional_formatting,insert_rows

    场景 python 使用 openpyxl 操作 excel 对于简单的格式来说还是挺方便的,但是对于复杂的格式,操作没有手动来的简单,如果对于复杂的格式也不是用python来做的.对于一个原有的报表 ...

  4. Python办公自动化之 openpyxl 操作 Excel

    今天给大家分享一篇用 openpyxl 操作 Excel 的 Python 办公自动化文章.5分钟就能掌握- 各种数据需要导入Excel?多个Excel要合并?目前,Python处理Excel文件有很 ...

  5. python+unittest+excel接口自动化_Python+requests+unittest+excel实现接口自动化测试框架

    一.框架结构: 工程目录 二.Case文件设计 三.基础包 base 3.1 封装get/post请求(runmethon.py) 1 import requests 2 import json 3 ...

  6. openpyxl 操作 Excel表的格基本用法

    在本教程中,将Python3和openpyxl库一起使用来操作 Excel 表格. 本文将介绍如下操作: 如何在内存中创建工作簿 如何从工作簿中检索.创建.复制.移动和删除工作表 如何从文件创建工作簿 ...

  7. 【Python基础】python使用openpyxl操作excel

    1.openpyxl库介绍 openpyxl最好用的python操作excel表格库,不接受反驳: openpyxl官网链接:openpyxl官网 openpyxl只支持[.xlsx / .xlsm ...

  8. python openpyxl操作Excel表格

    原创:未经允许不得转载,转载需标明出处 打算分为两个部分: 第一部分为:操作Excel表格 第二部分为:操作Excel图表 现在发布为第一部分内容 在最近的项目中的使用到了提取Android帧率日志, ...

  9. Python.openpyxl操作Excel

    Python 操作 Excel 存取数据 1. openpyxl 模块 1.1 安装 openpyxl 模块 1.2 Excel 文件的三个对象 1.2.1 Workbook 对象 1.2.2 Wor ...

最新文章

  1. R语言-路径设置与工作目录修改
  2. oracle系列(三)oracle的配置与管理
  3. Codeforces 768E:Game of Stones
  4. 老男孩教育50期左婷婷-day03-xhell连接服务器-远程连接排错-基础命令
  5. 如何申请到利息低的贷款?
  6. 数据结构—链表-双链表
  7. IOS 地理编码以及反地理编码
  8. 【Pytorch版本】损失函数大汇总
  9. e580显卡驱动_联想e580网卡驱动下载|联想e580无线网卡驱动官方版_ - 极光下载站...
  10. 字节全栈工程师亲自整理的40个前端练手项目
  11. mysql与sim900a_sim900a和sim800a的区别是什么
  12. Subversion的安装部署与用户验证配置
  13. 巡逻机器人(Patrol Robot, Uva1600)
  14. JZOJ.4377[GDOI2016模拟3.10]习用之语 解题报告
  15. PHP+JS+HTML 手机下拉加载分页
  16. 一位沪漂 11 年的程序员老兵,回老家了!
  17. ASP.NET Core2.1 你不得不了解的GDPR(Cookie处理) - (转载)
  18. c语言遍历 json字符串,全面详解c语言使用cJSON解析JSON字符
  19. 面试不是无情物,参数注解知多少?
  20. 手机端html跑马灯效果,js实现跑马灯效果 很好用

热门文章

  1. 学了一学期的C语言,就只配玩黑框框?
  2. 哲学家进餐问题三种解决死锁问题
  3. 19 Babylonjs入门进阶 设置声音
  4. MongoDB 6.0.1最新版使用教程
  5. 软技能-代码之外的生存指南读后感 生产力篇
  6. 30个优秀的CSS导航菜单和按钮教程
  7. 全球股市2019年市值暴增17万亿美元 全球财经头条:全球股市暴增17万亿美元,特斯拉或将下跌40% 根据德银的计算,全球股市在2019年一路狂飙,总市值增加了逾17万亿美元。德意志银行分析师
  8. ​阿里巴巴总市值超过4000亿美元,“股神”巴菲特:没买阿里巴巴股票是个错误!...
  9. python删库_python常用删除库的方法
  10. 【论文阅读】An Extrinsic Calibration Tool for Radar, Camera and Lidar