IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> openpyxl基本使用 -> 正文阅读

[开发测试]openpyxl基本使用

  • 做接口自动化测试时,测试用例逐渐变多情况下,如果所有测试用例都通过代码管理将会使得代码十分臃肿,而且维护成本会很高;
  • 所以我们一般会通过Excel去管理所有的测试用例,而openpyxl库提供了访问Excel的方法

一、openpyxl介绍

  • 一个Python库,用于读取/写入Excel 2010 xlsx 、xlsm 、xltx 、xltm 文件
  • 不能操作 xls 文件

二、openpyxl简单概念

  • Workbook:excel工作表
  • Sheet:工作表中的一张表
  • Cell:其中的一个单元格
  • 简单步骤:打开Workbook,选中Sheet,操作Cell

三、使用场景

数据驱动ddt,所有的方法和业务逻辑保持不变,变的是你的接口的数据

  • 1.自动化测试用例(excel保存接口数据)
  • 2.自动化测试用例(数据库保存接口数据),学习成本高一些,熟悉数据库操作;
  • 3.办公自动化(财务)

四、具体使用

1.安装openpyxl

pip install openpyxl

2.读取excel数据
1):打开excel:创建表对象
2):获取表单:获取表单对象
3):查看单元格:获取单元格对象
4):获取单元格数据:获取单元格内容
5):关闭excel:表:关闭excel

3.写excel数据

基本使用案例

import openpyxl

# 1):打开excel:创建表对象
wb_obj = openpyxl.load_workbook(filename="test.xlsx")

# 2):获取表单:获取表单对象
sheet_obj = wb_obj["can"]

# 3):查看单元格:获取单元格对象
cell_obj = sheet_obj["B6"]

# 4):获取单元格数据:获取单元格内容
result = cell_obj.value
print(result)

# 5):关闭excel:表:关闭excel
wb_obj.close()

执行结果
image.png

五、参数解释

wb_obj = openpyxl.load_workbook(filename="test.xlsx")
#filename:文件名称(要带路径)
#read_only=FalseL:读写控制,默认是False,可读可写
#keep_vba=KEEP_VBA:是否保留vba代码
#data_only=False:只显示公式,True:自动计算公式,读出结果
#keep_links=True:保留默认外部链接

获取表单对象

sheet_obj = wb_obj["can"]

#如果不知道表单名称,可获取所有的表单名称
res=wb_obj.sheetnames
print(res)#['can', 'Sheet2', 'Sheet3']

sheet_obj = wb_obj["can"]等价于wb.get_sheet_by_name("sheet的名字") 

六、访问cell

  • 访问单个cell
cell_obj=sheet_obj["C6"]
res=cell_obj.value
print(res)

cell_obj=sheet_obj.cell(row=3,column=3)
print(cell_obj.value)
  • 行切片与列切片
import openpyxl

# 1):打开excel:创建表对象
wb_obj = openpyxl.load_workbook("test.xlsx")

# # 2):获取表单:获取表单对象
sheet_obj = wb_obj["can"]
# print(sheet_obj)
# 3):查看单元格:获取单元格对象
cell_obj = sheet_obj.cell(row=3, column=3)

# 4):查看单元格:获取单元格对象
print(cell_obj.value)


# 行切片
results = sheet_obj.iter_rows(min_row=1, max_row=4, min_col=1, max_col=3, values_only=True)
for lis in results:
    print(lis)
"""
min_row=None:行切片的起始索引,默认为1
max_row=None:行切片的结束索引,默认为1
min_col=None:列切片的起始索引,默认为1
max_col=None列切片的结束索引,默认为1
values_only=False:是否直接返回对象的属性(数据还是对象),True:返回数据,False:返回对象
"""

# 列切片(参数与行切片一致)
results1 = sheet_obj.iter_cols(min_row=1, max_row=2, min_col=1, max_col=2, values_only=True)
for lis1 in results1:
    print(lis1)

运行结果

湖北3
(1, '北京1', '湖北1')
(2, '北京2', '湖北2')
(3, '北京3', '湖北3')
(4, '北京4', '湖北4')
(1, 2)
('北京1', '北京2')
  • 获取所有的行和列
# 以列的形式,获取sheet的全部cell
data = tuple(sheet_obj.columns)

# 以行的形式,获取sheet的全部cell
data = tuple(sheet_obj.rows)

# 获取所有数据
data = tuple(sheet_obj.values)

#打印所有行的数据
print(data)

# 指定返回某一行数据
print(data[1])

wb_obj.close()

image.png

七、openpyxl写入数据

sheet=wb_obj.active
sheet.cell(row=1,column=1,value="6666")
wb_obj.save("test.xlsx")

执行结果
在这里插入图片描述

知识点

  • 写入数据的文件需要是可写文件,需要已关闭;
  • 若打开着excel的话无法写入会报 PermissionError: [Errno 13] Permission denied: ‘XXXXX.xlsx’
  • 其实就是四部曲:获取excel - 执行 wb_obj.active - 赋值操作 -保存文件;
  • 赋值操作还可以是 sheet["A1"] = "6666" ,等价于上面第三行代码;
  • save() 会覆盖原有文件,不会有提醒
  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2021-11-23 12:39:57  更:2021-11-23 12:41:24 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/18 4:21:27-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码