Python_13 接口测试openpyxl和表操作
一、openpyxl
- 安装 pip install openpyxl 在Terminal中输入

- excel操作步骤
- 找到目标excel
- 打开
- 读取数据、编辑excel单元格
- 保存
- 关闭
- openpyxl 操作
- 创建wb对象(找到excel并打开它)
- 获取sheet对象
- 找到要操作的单元格
- 读数据、修改数据
- 保存,关闭
- 操作演示(和3对应的步骤)
from openpyxl import load_workbook 导入load_workbook类
- 实例化对象名 = load_workbook(filename="文件地址") 带文件名及其后缀
该步骤是创建文件流,初始化load_workbook类之后赋值给实例化对象
如测试文件在该项目文件夹中则直接填写文件名,如果文件不在该项目文件夹中则填写全部的链接
- 有关sheet的新对象名1 = 实例化对象名["测试用例中sheet名"] 获取sheet对象
- 新对象名2 = 有关sheet的新对象名1.cell(row=想获取的单元格的行, column=想获取的单元格的列)
找到要操作的单元格
新对象名2的值如下图所示,图中起名cell

- 接受结果名 = 新对象名2.value print(接受结果名) ,也可直接print(新对象名2.value)
用于获取测试文件中对应位置的确切取值

- 实例化对象名.close() 关掉创建的文件流,不关掉会占用IO,打开多了可能会崩

- 注意: 操作的都是对象(存储的位置),只有读数据时为值

- load_workbook 参数说明
- filename:excel 文件名称(带路径)
- read_only=False: 可读可写,默认False表示可读可写,Ture表示只读
- keep_vba=KEEP_VBA: 保留vba代码
- data_only=False: 默认是False:有计算公式的单元格直接读出来的是公式
True:有公式的单元格读出来是计算后的结果
- keep_links=True: 保留外部链接
- 获取sheet对象
- 有关sheet的新对象名1 = 实例化对象名["测试用例中sheet名"]
- 新接收结果名2 = 实例化对象名.sheetnames 返回一个sheet名称的list

- for name in 实例化对象名 print(name) 遍历sheet对象 和for循环不同的是遍历结果为对象而不是值

- 结果接收值 = 实例化对象名.worksheets[1] 通过索引值拿到sheet对象

- 找到要操作的单元格
- 接收值的结果 = 有关sheet的新对象名1["excel中的行列值如B2"]
- 新对象名2 = 有关sheet的新对象名1.cell(row=想获取的单元格的行, column=想获取的单元格的列)
5. 行操作
接收值 = 有关sheet的新对
将测试文件中的整行一行一行的遍历,获取所有行的对象,需要list强制类型转换
获取值就要通过双重for 循环获取
行对象接收值 =有关sheet的新对象名1.rows
for i in list(行对象接收值):
for k in i:
print(k.value)

- 接收值 = 有关sheet的新对象名1.max_row 获取最大行,统计测试文档中一共有多少行数据
这一行写了东西全行都会显示,默认有值,但是值是None,如不需要,要进行统一删除

- 行切片 用于取范围里的值,从行到列确定区域,二维的,推荐使用II
- 接收值 = 有关sheet的新对象名1.iter_rows(min_row=1,max_row=5,min_col=1,max_col=5,values_only=True)
print(list(接收值))

- for val in 有关sheet的新对象名1.iter_rows(min_row=1,max_row=5,min_col=1,max_col=5,values_only=True):
print(val)

- 统一解释
min_row=对应数值如1 起始行的索引(不写默认为1)
max_row=对应数值如5 结束行索引不写的话默认是最大值,索引从1开始
min_col=对应数值如1 起始列的索引(不写默认为1)
max_col=对应数值如5 结束列的索引(不写的话默认是最大值),索引从1开始
values_only=False 返回单元格的对象
values_only=True 返回单元格的值
- 列操作 (和行操作类似)
- 接收值 = 有关sheet的新对象名1.columns 获取所有列对象,一列一列的遍历
如果要获取值还是要用双重for循环的value方法去取值
列对象接收值 =有关sheet的新对象名1.columns
for i in list(列对象接收值):
for k in i:
print(k.value)

- 接收值 = 有关sheet的新对象名1.max_column 获取最大列

- 列切片 同行切片
- 接收值 = 有关sheet的新对象名1.iter_cols(min_row=1,max_row=5,min_col=1,max_col=5,values_only=True)
print(list(接收值))

- for val in 有关sheet的新对象名1.iter_cols(min_row=1,max_row=5,min_col=1,max_col=5,values_only=True):
print(val)

二、写表操作和保存
- 有关sheet的新对象名1["excel中的位置如A1"]="要赋的值" 通过给单元格赋值,更改内容

- 有关sheet的新对象名1(row=行值,column=列值).value="要赋的值" 给A1单元格赋值
有关sheet的新对象名1.cell(row=行值,column=列值,value="要赋的值") 给A1单元格传值

- 实例化对象名.save("文件名.后缀") 保存
- 有关sheet的新对象名1.append(想要添加的列表名) 添加数据 在表格最下面去写,按行写入,每一个元素站一个单元格
想要添加的列表名=[参数1,参数2,参数3,参数4,参数5]

Python_13 接口测试openpyxl和表操作的更多相关文章
- Python openpyxl、pandas操作Excel方法简介与具体实例
本篇重点讲解windows系统下 Python3.5中第三方excel操作库-openpyxl: 其实Python第三方库有很多可以操作Excel,如:xlrd,xlwt,xlwings甚至注明的数据 ...
- Mysql常用表操作 | 单表查询
160905 常用表操作 1. mysql -u root -p 回车 输入密码 2. 显示数据库列表 show databases 3. 进入某数据库 use database data ...
- Sql Server系列:数据表操作
表是用来存储数据和操作数据的逻辑结构,用来组织和存储数据,关系数据库中的所有数据都表现为表的形式,数据表由行和列组成.SQL Server中的数据表分为临时表和永久表,临时表存储在tempdb系统数据 ...
- 学习MySQL之单表操作(二)
##单表操作 ##创建表 CREATE TABLE t_employee( empno ), ename ), job ), MGR ), Hiredate DATE DEFAULT '0000-00 ...
- python——Django(ORM连表操作)
千呼万唤始出来~~~当当当,终于系统讲了django的ORM操作啦!!!这里记录的是django操作数据库表一对多.多对多的表创建及操作.对于操作,我们只记录连表相关的内容,介绍增加数据和查找数据,因 ...
- mysql数据表操作&库操作
首先登陆mysql:mysql -uroot -proot -P3306 -h127.0.0.1 查看所有的库:show databases; 进入一个库:use database; 显示所在的库:s ...
- SQL server基础知识(表操作、数据约束、多表链接查询)
SQL server基础知识 一.基础知识 (1).存储结构:数据库->表->数据 (2).管理数据库 增加:create database 数据库名称 删除:drop database ...
- Python之Django--ORM连表操作
一对多 class UserType(models.Model): caption = models.CharField(max_length=32) class UserInfo(models.Mo ...
- spark使用Hive表操作
spark Hive表操作 之前很长一段时间是通过hiveServer操作Hive表的,一旦hiveServer宕掉就无法进行操作. 比如说一个修改表分区的操作 一.使用HiveServer的方式 v ...
- [SAP ABAP开发技术总结]内表操作
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
随机推荐
- centos下vi 命令用法
vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指令.由于对Unix及Linux系统的任何版本,vi编辑器是完全相 ...
- C# winform DataGridView 一列显示星号
private void myDataGrid_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventA ...
- C语言和C++的区别与联系(详细)
文章转自:https://blog.csdn.net/cherrydreamsover/article/details/81835976 在学习了C语言和C++之后,这两者之间的区别我们需要仔细的捋一 ...
- Cryptanalyzing and Improving a Novel Color Image Encryption Algorithm Using RT-Enhanced Chaotic Tent Maps
Cryptanalyzing and Improving a Novel ColorImage Encryption Algorithm Using RT-EnhancedChaotic Tent M ...
- Javaweb知识复习--MyBatis+Mapper代理开发
一种持久层框架,主要用于简化JDBC MyBatis应用步骤 1.在数据库里面创建一个表 2.创建模块,导入坐标 就是新建一个Maven项目,在pom.xml里面导入mybatis相应导包依赖代码: ...
- 利用Vue技术实现的查询所有和添加功能
就是根据Vue本身的特性,对之前写过的JSON等进行页面代码的简化. 其中,有俩点,需要明白一下: 在body标签里面,使用div标签,将列表数据包住,并设置一个id,便于vue对其的引用 在使用vu ...
- Vue前端框架的基础学习,为之后打个基础
Vue 首先,在使用vue之前,我们需要先下载好一个vue.js文件,才能继续进行vue的学习,下载教程如下: 1.进入官网:https://v2.vuejs.org/ 2.选择页面中的Learn,再 ...
- Python爬虫采集商品评价信息--京东
1.数据采集逻辑 在进行数据采集之前,明确哪些数据为所需,制定数据Schema为爬取工作做出要求,并根据数据Schema制定出有针对性的爬取方案和采集逻辑. 2.数据Schema 3.数据爬取 抓取京 ...
- 获取了文心一言的内测及与其ChatGPT、GPT-4 对比结果
百度在3月16日召开了关于文心一言(知识增强大语言模型)的发布会,但是会上并没现场展示demo.如果要测试的文心一言 也要获取邀请码,才能进行测试的. 我这边通过预约得到了邀请码,大概是在3月17日晚 ...
- 【Eolink】Apikit V10.8.0 版本发布!增加支持 DUBBO、TCP、SOAP 、HSF、UDP 的接口协议
Apikit 最新功能来袭! 我们在这个版本实现了接口管理和测试能力的全面升级,包括且不限于: 新增功能速览: 增加支持 DUBBO.TCP.SOAP .HSF.UDP 接口文档和协议 接口文档可自动 ...