在软件测试中执行测试用例是总是要进行读写Excel的操作,本文主要介绍了读取用例模板,在指定的位置写入数据。
目录
使用openpyxl库实现对Excel文件的读取,写入,包含定位表单的方法,读取所有数据,按表单读取,多行读取,以及指定位置写入数据,定位单元格后写入,定位表单后写入,使用append实现多行写入等内容。
一.安装第三方库
pip install openpyxl
若提示失败,则检查python.exe和pip配置环境变量有没有配置,或考虑在官方库下载离线安装
openpyxl官方库:
二.打开工作表
workbook=openpyxl.load_workbook('filepath')
- workbook :工作簿对象,可自己新建文件创建,以下是未创建工作簿时创建workbook的示例
-
workbook=openpyxl.Workbook#声明workbook对象 workbook.save(filename)#保存 filename为文件相对路径或绝对路径
- load_workbook属性:获取工作簿对象(获取属性前,先要加载工作簿)
- filepath:已创建的Excel的相对路径或绝对路径
三.定位表单(sheet)
3.1 active
active默认定位第一个激活的表单
wooksheet=workbook.active
3.2 指定表单名
worksheet=workbook['sheet1']
3.3 获取所有表单名
print(workbook.sheeetnames)
四.读取Excel数据
4.1读取单个单元格中的值
定位单元格创建一个cell对象,相当于一个单元格,使用Cell对象中的value属性获取单元格中的值
one_cell=worksheet.cell(row=2,column=2)
print(one_cell.value)
#或者是下面这种方法
#a=worksheet.cell(2,2).value
#print(a)
4.2读取多行数据
test_cases=[]
for row in ws.iter_rows(min_row=2):#从第二行开始读取
test_case_data=[cell for cell in row]
test_cases.append(test_case_data)
for test_case in test_cases:#输出读取的数据
print(test_case)
五.写入数据
5.1 定位单元格后写入
one_cell.value="商品"
5.2定位表单后写入
worksheet.cell(row=2,column=3,value="食品")
5.3 写入多行数据
test_case=[
['商品','毛巾'],
['数量','1111'],
]
#使用append实现多行写入
for row_data in test_case:
ws.append(row_data)
#使用双重循环遍历测试用例数据
#外层循环遍历行,内循环遍历列,实现多行写入
for row_data,data in enumerate(test_case,start=1):
for col_data,value in enumerate(data,start=1):
ws.cell(row=row_data,column=col_data,value=value)
六.保存文件并关闭
wb.save('filepath')#filepath文件路径
# 关闭文件
wb.close()
代码
#python读写EXCEL:读取用例模板,在指定位置写入数据。
import openpyxl
from openpyxl import load_workbook
# (1)打开模板文件
wb= openpyxl.load_workbook('D:\\17test\\01demo\\新建 XLSX 工作表.xlsx')
#定位表单的方法
#第一种active默认第一个激活的表单
ws=wb.active
#第二种指定表单名
# ws = wb['sheet1']
#第三种获取所有的表单名
# print(wb.sheetnames)
#定位单元格创建一个cell对象,相当于一个单元格
one_cell=ws.cell(row=2,column=2)
#使用Cell对象中的value属性获取单元格中的值
print(one_cell.value)
#a=ws.cell(2,2).value print(a)
#读取多行数据
test_cases=[]
for row in ws.iter_rows(min_row=2):#从第二行开始读取
test_case_data=[cell for cell in row]
test_cases.append(test_case_data)
for test_case in test_cases:#输出读取的数据
print(test_case)
#(2)在指定位置写入数据
#定位单元格后写入
one_cell.value="商品"
#定位表单后写入
ws.cell(row=2,column=3,value="食品")
#写入多行数据
test_case=[
['商品','毛巾'],
['数量','1111'],
]
#使用append实现多行写入
for row_data in test_case:
ws.append(row_data)
#使用双重循环遍历测试用例数据,实现多行写入
for row_data,data in enumerate(test_case,start=1):
for col_data,value in enumerate(data,start=1):
ws.cell(row=row_data,column=col_data,value=value)
# 保存修改后的文件
wb.save('D:\\17test\\01demo\\新建 XLSX 工作表.xlsx')
# 关闭文件
wb.close()