我们在写测试用例的时候,是创建一个表格.xlsx,然后把各种条件加到这张表格中去,所以,如何对excel表格操作,是相当重要的一环,那么,接下来,这篇博客就直接教会大家如何通过python去处理平时工作中用到的测试用例表格,我们一步一步来,慢慢的给各位同学讲明白。

首先,给大家先补个基础的常识,就是你对一个excel的了解有多少?看下图所示:

一、excel操作三大对象

workbook 工作薄:一个excel文件会被加载为一个工作薄对象workbook

form 表单:excel文件中,每个sheet表达会被加载成一个工作表对象sheet

cell 单元格:工作表中的每一个格子就是一个单元格,即表格对象cell

好,先把这些基础的知识先了解,因为,excel主要就是操作这三个对象workbook、sheet、cell

以下,我拿一段代码举例,在用python操作excel时,先要安装一个openpyxl,如何安装?

安装完成以后,开始建一个表格文件.xlsx,然后复制或者剪切到python的具体文件夹目录下,以下是我自己随意建的表格:

代码如下:

importopenpyxl#第一步:将excel文件加载到一个工作薄对象中

wb = openpyxl.load_workbook("abc.xlsx")#第二步:选择文件中的表单

sh = wb["login"]#第三步:读取内容 ,cell表示单元格

res = sh.cell(row=1, column=1) #第一行第一列

print(res.value) #打印出 111

以上就是简单的示例:读取某个单元格的内容

二、数据的写入

(单独用的不多,不算重点,了解即可)

关于excel数据的写入,单独用的不多,一般会和会面的读取数据写入数据一起结合用,现在只是单独拿出来讲解,先做个大概的了解,可以总结以下四步规律

第一步:将excel文件加载到一个工作薄对象中

wb = openpyxl.load_workbook("文件名")

第二步:选择文件中的表单

sh = wb["表单名"]

第三步:往表格中写入数据

sh.cell(row=行, column=值, value='写入的值')

第四步:保存

wb.save("文件名")

注意:在往excel中,写入数据的时候,文件不能处于一个打开的状态,否则会报错

importopenpyxl#第一步:将excel文件加载到一个工作薄对象中

wb = openpyxl.load_workbook("abc.xlsx")#第二步:选择文件中的表单

sh = wb["login"]#第三步:往表格中写入数据

sh.cell(row=1, column=1, value='jack')#第四步:保存

wb.save("abc.xlsx") #打开表格看,111已经变为jack

三、数据的批量读取

比如:给你一张表格,把表格的内容,一次性读取出来,怎么办?如何操作?如何用python来实现

importopenpyxl#第一步:将excel文件加载到一个工作薄对象中

wb = openpyxl.load_workbook("yyy.xlsx")#第二步:选择文件中的表单

sh = wb["login"]

res=list(sh.rows)for item inres:for c initem:print(c.value, end=" ")print() #起着换行的作用

四、excel用例数据读取组装成列表嵌套字典的格式

先给大家看一下这张表 testcases ,

我们想把它读取出来,转化成开头的那种列表中嵌套字典的模式,怎么来弄?有的同学要问,为什么要弄成那种格式,因为,要和ddt结合起来使用,转化成这种格式:

方便ddt的使用,只要转化成这个列表中嵌套字典的格式,以后可以直接套用

importopenpyxl#第一步:将excel文件加载到一个工作簿对象中

wb = openpyxl.load_workbook("testcases.xlsx")#第二步:选择文件中的表单

sh = wb["login"]

res=list(sh.rows)#获取第一行的单元格

title =[]#遍历第一行所有的单元格,将格子中的值添加到列表title中

for c inres[0]:

title.append(c.value)

cases_data=[]#遍历除第一行之外所有的行

for row in res[1:]:

data=[]for c inrow:

data.append(c.value)

item=dict(zip(title, data))

cases_data.append(item)print(cases_data)

五、excel的封装

importopenpyxlclassExcel:def __init__(self, filename, sheet_name):

self.filename=filename

self.sheet_name=sheet_namedefread_data(self):"""读数据"""

#第一步:将excel文件加载到一个工作簿对象中

wb =openpyxl.load_workbook(self.filename)#第二步:选择文件中的表单

sh =wb[self.sheet_name]

res=list(sh.rows)#获取第一行的单元格

title =[]#遍历第一行所有的单元格,将格子中的值添加到列表title中

for c inres[0]:

title.append(c.value)

cases_data=[]#遍历除第一行之外所有的行

for row in res[1:]:

data=[]for c inrow:

data.append(c.value)

case=dict(zip(title, data))#print(case)

cases_data.append(case)returncases_datadefwrite_data(self, row, column, value):"""写数据"""

#第一步:将excel文件加载到一个工作簿对象中

wb =openpyxl.load_workbook(self.filename)#第二步:选择文件中的表单

sh =wb[self.sheet_name]

sh.cell(row=row, column=column, value=value)

wb.save(self.filename)

未完待续。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

python做excel表格代码_python操作excel表格相关推荐

  1. python做excel表格代码_python - 操作excel表格

    说明:由于公司oa暂缺,人事妹子在做考勤的时候,需要通过几个excel表格去交叉比对员工是否有旷工或迟到,工作量大而且容易出错. 这时候it屌丝的机会来啦,花了一天时间给妹子撸了一个自动化脚本. 1. ...

  2. python做excel表格代码_Python读写Excel表格

    最近在做一些数据处理和计算的工作,因为数据是以.CSV格式保存的,因此刚开始直接用Excel来处理. 但是做着做着发现重复的劳动,其实并没有多大的意义,于是就想着写个小工具帮着处理. 以前正好在一本书 ...

  3. python excel操作单元格_python 操作excel表格的方法

    说明:由于公司oa暂缺,人事妹子在做考勤的时候,需要通过几个excel表格去交叉比对员工是否有旷工或迟到,工作量大而且容易出错. 这时候it屌丝的机会来啦,花了一天时间给妹子撸了一个自动化脚本. 1. ...

  4. python 做excel可视化报告_Python操作Excel制作可视化数据图,实现自动化办公

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 以下文章来源于IT入门 安装 操作一个简单的Excel文档 操作注释及代码: 操作完成后,数 ...

  5. python excel详解_python操作excel详解

    前提: python操作excel需要使用的模块有xlrd.xlwt.xlutils.对excel进行读.写.更新操作.操作excel时需要先导入这些模块,demo如下: excel-读操作知识点: ...

  6. python操纵excel的方法_python操作Excel的几种方式

    Python对Excel的读写主要有xlrd.xlwt.xlutils.openpyxl.xlsxwriter几种. 首先你的本地要有包文件,安装上面的包文件如下图 1.xlrd主要是用来读取exce ...

  7. python读excel字体颜色_python操作excel之设置字体颜色及格式

    原博文 2020-06-03 13:46 − xlwings如何设置字体.颜色等属性 # coding: utf-8 import xlwings as xw app=xw.App(visible=F ...

  8. python求三个数平均值_Python操作Excel教程-average函数求平均值

    Python实战:找到\u201CB列\u201D的平均值,\u201C列C\u201D,\u201CD\u201D.这个过程有点麻烦.请仔细看以下步骤:\u201D.1. 核心代码2.操作结果3.流 ...

  9. python做一个系统代码_python初学者,用python3实现基本的学生管理系统代码实例...

    这篇文章分享了管理系统,python学生管理系统的使用,这篇文章非常详细地介绍了通过示例代码实现的学生管理系统,该系统对每个人的研究或工作都有一定的参考学习价值. 这个是用python实现的基本的增删 ...

最新文章

  1. 在CentOS 6.3 64bit上安装Apache Trafficserver 4.2.3
  2. mysql设置ssh连接_ssh修改连接数据库 将mysql改为sql连接
  3. Android 使用PDF.js浏览pdf
  4. 织梦缩略图自动补齐绝对路径_[教程]织梦CMS缩略图和文章内容图片自动转化为带域名的绝对路径...
  5. Spring MVC 中使用AOP 进行统一日志管理--XML配置实现
  6. ICP备案和经营性ICP有何不同
  7. html选择日期选择器
  8. vb.net html元素,vb.net 教程 12-3 HtmlElement类 1
  9. 作为技术面试官,我在面试时考虑什么?
  10. word总页数不包含封面_word目录不包含封面 word 目录 不含封面
  11. cad动态块制作翻转_cad动态块制作教程
  12. 数据分析之利用EXCEL做数据分析
  13. 阿弥陀佛么么哒 - 笔记
  14. 猴子偷桃c语言编程软件,C语言实现的猴子偷桃之类算法
  15. 2022,从阅读开始
  16. Python计算机二级过考指南
  17. 【算法】剑指offer - JZ76 删除链表中重复的结点
  18. 元素和子集,属于与包含
  19. 分布式进阶 一 Windows 7下硬盘安装Ubuntu 14 04图文教程
  20. 【例4-3】利用数组,给定N个正整数数据(N<=100),查找最大值和最小值并输出。【输入输出样例】Input length (N<=100):(此处括号、冒号为英文符号,后面无空格;leng

热门文章

  1. [leedcode 52] N-Queens II
  2. [xsd学习]xsd介绍
  3. windows下hadoop的单机伪分布式部署(3)
  4. mysql 转换编码
  5. 【数据结构与算法】【算法思想】【算法应用】【排序查找搜索】并行
  6. [剑指offer][JAVA]面试题第[29]题[顺时针打印矩阵][数组]
  7. [Leedcode][JAVA][第542题][01矩阵][BFS]
  8. 【解决问题】useBean类属性[com.cheng.pojo.People]的值无效导致HTTP500问题
  9. linux 脚本 java_Linux 通过脚本执行Java程序
  10. C# WinForm中获取当前程序运行目录的方法