python做excel表格代码_python操作excel表格

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

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

1867709-20200810163419131-825332587.png

一、excel操作三大对象

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

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

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

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

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

1867709-20200810163857141-1416108396.png

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

1867709-20200810164038212-964756808.png

代码如下:

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

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

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

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

print(res.value) #打印出 111

1867709-20200810164315321-1773148397.png

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

二、数据的写入

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

关于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() #起着换行的作用

1867709-20200810194622558-812883325.png

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

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

1867709-20200810195508612-314557200.png

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

1867709-20200810195715729-1986453261.png

方便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)

1867709-20200810211110650-1887358541.png

五、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)

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值