一、openpyxl

  1. 安装   pip install openpyxl  在Terminal中输入
  1. excel操作步骤
    1. 找到目标excel
    2. 打开
    3. 读取数据、编辑excel单元格
    4. 保存
    5. 关闭
  1. openpyxl 操作
    1. 创建wb对象(找到excel并打开它)
    2. 获取sheet对象
    3. 找到要操作的单元格
    4. 读数据、修改数据
    5. 保存,关闭
  1. 操作演示(和3对应的步骤)

from openpyxl import load_workbook   导入load_workbook类

  1. 实例化对象名 = load_workbook(filename="文件地址")    带文件名及其后缀

该步骤是创建文件流,初始化load_workbook类之后赋值给实例化对象

如测试文件在该项目文件夹中则直接填写文件名,如果文件不在该项目文件夹中则填写全部的链接

  1. 有关sheet的新对象名1 = 实例化对象名["测试用例中sheet名"]        获取sheet对象
  2. 新对象名2 = 有关sheet的新对象名1.cell(row=想获取的单元格的行, column=想获取的单元格的列)

找到要操作的单元格

新对象名2的值如下图所示,图中起名cell

  1. 接受结果名 = 新对象名2.value   print(接受结果名) ,也可直接print(新对象名2.value)

用于获取测试文件中对应位置的确切取值

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

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

  1. load_workbook      参数说明
    1. filename:excel        文件名称(带路径)
    2. read_only=False:    可读可写,默认False表示可读可写,Ture表示只读
    3. keep_vba=KEEP_VBA:     保留vba代码
    4. data_only=False:     默认是False:有计算公式的单元格直接读出来的是公式

True:有公式的单元格读出来是计算后的结果

  1. keep_links=True:     保留外部链接
  1. 获取sheet对象
    1. 有关sheet的新对象名1 = 实例化对象名["测试用例中sheet名"]
    2. 新接收结果名2 = 实例化对象名.sheetnames   返回一个sheet名称的list

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

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

  1. 找到要操作的单元格
    1. 接收值的结果 = 有关sheet的新对象名1["excel中的行列值如B2"]
    2. 新对象名2 = 有关sheet的新对象名1.cell(row=想获取的单元格的行, column=想获取的单元格的列)

  5. 行操作

  接收值 = 有关sheet的新对

  将测试文件中的整行一行一行的遍历,获取所有行的对象,需要list强制类型转换

  获取值就要通过双重for 循环获取

  行对象接收值 =有关sheet的新对象名1.rows

  for i in list(行对象接收值):

   for k in i:

      print(k.value)

  1. 接收值 = 有关sheet的新对象名1.max_row    获取最大行,统计测试文档中一共有多少行数据

  这一行写了东西全行都会显示,默认有值,但是值是None,如不需要,要进行统一删除

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

print(list(接收值))

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

print(val)

  1. 统一解释

  min_row=对应数值如1      起始行的索引(不写默认为1)

  max_row=对应数值如5     结束行索引不写的话默认是最大值,索引从1开始

  min_col=对应数值如1   起始列的索引(不写默认为1)

  max_col=对应数值如5   结束列的索引(不写的话默认是最大值),索引从1开始

  values_only=False  返回单元格的对象

  values_only=True  返回单元格的值

  1. 列操作 (和行操作类似)
    1. 接收值 = 有关sheet的新对象名1.columns  获取所有列对象,一列一列的遍历

       如果要获取值还是要用双重for循环的value方法去取值

       列对象接收值 =有关sheet的新对象名1.columns

        for i in list(列对象接收值):

         for k in i:

           print(k.value)

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

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

      print(list(接收值))

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

print(val)

二、写表操作和保存

  1. 有关sheet的新对象名1["excel中的位置如A1"]="要赋的值"    通过给单元格赋值,更改内容

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

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

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

   想要添加的列表名=[参数1,参数2,参数3,参数4,参数5]

Python_13 接口测试openpyxl和表操作的更多相关文章

  1. Python openpyxl、pandas操作Excel方法简介与具体实例

    本篇重点讲解windows系统下 Python3.5中第三方excel操作库-openpyxl: 其实Python第三方库有很多可以操作Excel,如:xlrd,xlwt,xlwings甚至注明的数据 ...

  2. Mysql常用表操作 | 单表查询

    160905 常用表操作 1. mysql -u root -p 回车 输入密码   2. 显示数据库列表 show databases     3. 进入某数据库 use database data ...

  3. Sql Server系列:数据表操作

    表是用来存储数据和操作数据的逻辑结构,用来组织和存储数据,关系数据库中的所有数据都表现为表的形式,数据表由行和列组成.SQL Server中的数据表分为临时表和永久表,临时表存储在tempdb系统数据 ...

  4. 学习MySQL之单表操作(二)

    ##单表操作 ##创建表 CREATE TABLE t_employee( empno ), ename ), job ), MGR ), Hiredate DATE DEFAULT '0000-00 ...

  5. python——Django(ORM连表操作)

    千呼万唤始出来~~~当当当,终于系统讲了django的ORM操作啦!!!这里记录的是django操作数据库表一对多.多对多的表创建及操作.对于操作,我们只记录连表相关的内容,介绍增加数据和查找数据,因 ...

  6. mysql数据表操作&库操作

    首先登陆mysql:mysql -uroot -proot -P3306 -h127.0.0.1 查看所有的库:show databases; 进入一个库:use database; 显示所在的库:s ...

  7. SQL server基础知识(表操作、数据约束、多表链接查询)

    SQL server基础知识 一.基础知识 (1).存储结构:数据库->表->数据 (2).管理数据库 增加:create database 数据库名称 删除:drop database ...

  8. Python之Django--ORM连表操作

    一对多 class UserType(models.Model): caption = models.CharField(max_length=32) class UserInfo(models.Mo ...

  9. spark使用Hive表操作

    spark Hive表操作 之前很长一段时间是通过hiveServer操作Hive表的,一旦hiveServer宕掉就无法进行操作. 比如说一个修改表分区的操作 一.使用HiveServer的方式 v ...

  10. [SAP ABAP开发技术总结]内表操作

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

随机推荐

  1. Spring AOP @before@after@around@afterreturning@afterthrowing执行顺序

    public Object aop(Method method,Object object) { try { try { /*doAround start*/ doBefore(); method.i ...

  2. AtCoder-abc230_g GCD Permutation 容斥

    J - GCD Permutation 传送门: J - GCD Permutation 知识点:素数筛.容斥定理.gcd 题意:长度为n的一个排列a中,求满足\(gcd(i,j)!=1 且 gcd( ...

  3. TCP idle timeout 和TCP Keepalive 比较和分析

    TCP  idle timeout  和TCP Keepalive  是两个独立的功能. TCP  idle timeout  TCP  idle timeout  是系统TCP配置文件中的空闲超时设 ...

  4. python 超时装饰器

    #************************************************************** 设置超时的装饰器 *************************** ...

  5. (转载)一篇文章详解python的字符编码问题

    一篇文章详解python的字符编码问题   一:什么是编码 将明文转换为计算机可以识别的编码文本称为"编码".反之从计算机可识别的编码文本转回为明文为"解码". ...

  6. 全网最详细中英文ChatGPT接口文档(一)开始使用ChatGPT——导言

    目录 Introduction 导言 Overview 概述 Key concepts 关键概念 Prompts and completions 提示和完成 Tokens 标记/符号 Models 模 ...

  7. nat是干什么的,为什么要有nat?以及谈谈ovs里使用ct实现nat功能

    博客竟然不显示更新的时间,只有个发布时间.看起来像2个月没更新一样,其实更新了几行呢.好几个东西想理一下,本来想和周记放一起了,但放一起就没有主题了. 当然一搜也有一些很好的博客,更详细:https: ...

  8. Skywalking搭建

    因毕设前端太丑,所以后端要稍微搞的高大上一点才能忽悠住老师,所以分享一下搭建skywalking的步. 我是参考https://baijiahao.baidu.com/s?id=17211835411 ...

  9. 2020中国最好大学排名.py(亲测有效)

    import requests from bs4 import BeautifulSoup import bs4 def getHTMLText(url): try: r = requests.get ...

  10. 源码解读之FutureTask如何实现最大等待时间

    预备知识:Java 线程挂起的常用方式有以下几种 Thread.sleep(long millis):这个方法可以让线程挂起一段时间,并释放 CPU 时间片,等待一段时间后自动恢复执行.这种方式可以用 ...