一、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. Linux(CentOS)安装脚本

    此文以CentOS为例,乌班图的是有区别的,请参照https://www.cnblogs.com/takako_mu/p/11725733.html. 安装.Net Core (能访问外网的情况下采用 ...

  2. MFC的对话框使用Scintilla

    工作中需要做一个脚本编辑器的工具,用于代码补全.语法高亮.错误提示等功能,可以直接使用开源控件Scintilla, 网上有一些MFC的多文档使用Scintilla的例子,项目中使用的是对话框,自己实现 ...

  3. ABP vNext微服务架构详细教程——项目部署

    1. 基础配置 在之前的文章中,我们已经配置了Kubernetes集群并安装了管理工具Kubesphere,文章地址为:https://mp.weixin.qq.com/s/MgpdMv5A-fYxN ...

  4. 静态类型和动态类型VS强类型和弱类型

    强类型语言和静态类型语言有什么区别? 静态类型的语言具有类型系统,该类型系统在实现时由实现(编译器或解释器)检查.类型检查拒绝某些程序,并且通过检查的程序通常带有一些保证.例如,编译器保证不对浮点数使 ...

  5. 第一天1h

    //摄氏度和华氏度之间的换算//20211120//ZhangWenjing#include<stdio.h>int main(void){ int f = 0; int c = 0; s ...

  6. 几种C#实现播放声音的方法 DirectX、SoundPlayer等

    第一种是利用DirectX  1.安装了DirectX SDK(有9个DLL文件).这里我们只用到MicroSoft.DirectX.dll 和 Microsoft.Directx.DirectSou ...

  7. nginx配置https安全访问

    1.使用wosigncode生成CSR https://bbs.wosign.com/forum.php?mod=viewthread&tid=3526#lastpost 2.配置,选择第7小 ...

  8. 基本的dns命令

    打开cmd的方式 win+r 键 输入cmd       管理员方式运行    打开桌面  命令提示符 盘符切换 直接输入要切换的盘 查看当前目录下所有文件   dir 切换目录  cd  /d 跨盘 ...

  9. 一文快速回顾 Servlet、Filter、Listener

    什么是Servlet? 前置知识: Web 服务器:可以指硬件上的,也可以指软件上的.从硬件的角度来说, Web 服务器指的就是一台存储了网络服务软件的计算机:从软件的角度来说, Web 服务器指的是 ...

  10. P7961 数列 题解

    对模拟的过程不敏感,对范围的数字不敏感 手玩是发现规律的好方式 计数 dp 以及一众计数题是明显短板,需要加紧突破. 样例解释已经较为明显地提示了这道题的大致做法.对于计数题,有动归与组合数学两种方法 ...