[接口测试 - 基础篇] 07 来来来,一起读写excel玩玩之一
时间:2022-05-07
本文章向大家介绍[接口测试 - 基础篇] 07 来来来,一起读写excel玩玩之一,主要内容包括什么是openpyxl、如何安装openpyxl和pillow、官方文档、openpyxl基本示例、小结、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。
概述
我们看一下excel如何应用到我们的测试场景中来,通常的应用场景有:
- 用于测试数据的管理维护
- 用于自动化测试(含UI级、接口级等等)用例管理
- 用于测试报告生成
下面我们介绍下使用openpyxl对excel进行读写。
什么是openpyxl
openpyxl是一个Python库读写Excel 2010 xlsx/xlsm/xltx /XLTM的库。
注意其局限性,不支持低版本的excel。
如何安装openpyxl和pillow
直接使用pip命令进行安装,如下:
pip install openpyxl
为了让openpyxl具备处理图片的能力,你还需要安装pillow,命令如下:
pip install pillow
官方文档
openpyxl官方文档如下:
https://openpyxl.readthedocs.io/en/default/
pillow官方文档如下:
http://pillow.readthedocs.io/en/4.2.x/
openpyxl基本示例
下面我们演示一个基本示例,实现一下功能:
- 创建一个excel文档
- 创建多个工作簿,往单元格中写入一些符串
- 一次读取其中一个或多个单元格数据
- 保存创建的excel文档
- 读取已保存的excel中的数据
通过演示上面的功能,让大家对openpyxl有一个基本的了解。
#-*- coding:utf-8 -*-
__author__ = "苦叶子"
from openpyxl import Workbook, load_workbook
if __name__ == "__main__":
print("python openpyxl基本实例")
# 创建excel文档
wb = Workbook()
ws = wb.active
# 给默认的工作簿修改名称
ws.title = "我的默认创建的工作簿"
# 对第一行,A-F列写入数据
for col in ("A", "B", "C", "D", "E", "F"):
ws["%s1" % col] = "开源优测"
# 对第二行,A-F列写入数据
for col in ("A", "B", "C", "D", "E", "F"):
ws["%s2" % col] = "公众号: DeepTest"
# 创建一个工作簿
ws1 = wb.create_sheet("新创建的工作簿1")
# 对第一行,A-F列写入数据
for col in ("A", "B", "C", "D", "E", "F"):
ws1["%s1" % col] = "开源优测1"
# 对第二行,A-F列写入数据
for col in ("A", "B", "C", "D", "E", "F"):
ws1["%s2" % col] = "大数据测试"
# 创建一个工作簿
ws1 = wb.create_sheet("新创建的工作簿2")
# 对第一行,A-F列写入数据
for col in ("A", "B", "C", "D", "E", "F"):
ws1["%s1" % col] = "开源优测2"
# 对第二行,A-F列写入数据
for col in ("A", "B", "C", "D", "E", "F"):
ws1["%s2" % col] = "快学Python3"
# 保存excel文档到硬盘
wb.save('openpyxl_demo.xlsx')
# 读取openpyxl_deml.xlsx文档中的内容
# 只读模式打开
r_wb = load_workbook(filename='openpyxl_demo.xlsx',
read_only=True)
# 获取所有工作簿名称
sheets = r_wb.get_sheet_names()
# 遍历各个工作簿中的内容
# 即上述写入到第一、二行A-F列的数据
for sheet in sheets:
ws = r_wb[sheet]
print("---" * 20)
print(">>>读取", sheet)
# 遍历第一、二行A-F列的数据
for row in (1, 2):
for col in ("A", "B", "C", "D", "E", "F"):
print(ws["%s%d" % (col, row)].value, end=' ')
print(end='n')
# 一次性读取多个单元格的数据
print(end='nn')
print(">>> 一次性读取多个单元格数据")
for sheet in sheets:
ws = r_wb[sheet]
print("---" * 20)
print(">>>读取", sheet)
cells_range = ws["A1": "F2"]
# 遍历下已读取的单元格的内容
for cells in cells_range:
for cell in cells:
print(cell.value, end=' ')
print(end='n')
小结
本文就openpyxl读写excel做了简要的分享,下一篇就openpyxl更多的使用功能进行分享。
- android service 学习(上)
- 黑帽SEO剖析之隐身篇
- Java中如何判断一个字符串是Java代码还是英文呢?
- 将复杂查询写到SQL配置文件--SOD框架的SQL-MAP技术简介
- Java中实现找到两个数组交集的2种方法,开发实用
- Java Web中JSP的include 指令知识点总结——每日一语法学习
- Java反序列化漏洞从理解到实践
- ORM查询语言(OQL)简介--高级篇(续):庐山真貌
- Java中使用Hibernate系列之映射关联启动工作学习(第五节)
- Java中使用Hibernate系列之单向Set-based的关联学习(第四节)
- Java中使用Hibernate系列之加载并存储对象学习(第三节)
- Java中使用Hibernate系列之启动方法学习(第二节)
- Java中使用Hibernate系列之映射文件学习(第一节)
- Java中为图片添加水印效果的方法——实例代码
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- django-rest-framework框架学习
- 弄懂这 5 个问题,拿下 Python 迭代器!
- 一天一大 leet(跳水板)难度:简单-Day20200708
- 百度一二三面!喜提提起批offer!别问,问就是牛逼!
- 一天一大 leet(计算右侧小于当前元素的个数)难度:困难-Day20200711
- Spring 下,关于动态数据源的事务问题的探讨
- 面试再问 HashMap,求你把这篇文章发给他!
- FestIN:一款功能强大的S3 Buckets数据内容搜索工具
- 一天一大 leet(地下城游戏)难度:困难-Day20200712
- 【MongoDB】mongodb4.4版本新特性
- 一天一大 leet(数组中的第 K 个最大元素)难度:中等 DAY-29
- 线程之生产者消费者模式
- Redis学习笔记 -- 2
- 一天一大 leet(单词拆分)难度:中等 DAY-25
- 多线程必考的「生产者 - 消费者」模型,看乔戈里这篇文章就够了