PythonClassChy/python27Class/homeWork/unitTest/homeWork03102020/readExcel.py

80 lines
2.3 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"""
=================================
Author: Flora Chen
Time: 2020/3/11 9:08
-_- -_- -_- -_- -_- -_- -_- -_-
=================================
"""
import openpyxl
class HandleExcel:
"""
这是一个从excel中读取用例数据并将测试结果写回excel的类
"""
def __init__(self, filename, sheetname):
"""
实例属性
:param filename: excel文件的绝对路径
:param sheetname: excel中我们需要读取的表单的名称
"""
self.filename = filename
self.sheetname = sheetname
def read_data(self):
# 获取工作簿对象
wb = openpyxl.load_workbook(self.filename)
# 获取该工作簿的表单
sh = wb[self.sheetname]
# 获取所有行的数据
rows_data = list(sh.rows)
# 定义一个空列表cases_data来保存所有的用例数据
cases_data = []
# 获取表头将表头每个单元格中的数据值保存在列表title中
title = []
for i in rows_data[0]:
title.append(i.value)
# 获取剩余行的数据并将剩余行每个单元格的数据值保存在列表values中
for i in rows_data[1:]:
values = []
for j in i:
values.append(j.value)
# 将title跟每一行的values打包成字典并追加到cases_data列表中
cases_data.append(dict(zip(title, values)))
# 关闭保存excel文件
wb.save(self.filename)
# 将用例数据返回
return cases_data
def write_data(self, row, column, value):
"""
执行完测试用例后将测试结果写回到excel的类
:param row: 要写入的行
:param column: 要写入的列
:param value: 要写入的内容
:return:
"""
# 获取工作簿对象
wb = openpyxl.load_workbook(self.filename)
# 获取该工作簿的表单
sh = wb[self.sheetname]
# 在指定行列写入数据
sh.cell(row=row, column=column, value=value)
# 关闭保存excel文件
wb.save(self.filename)
if __name__ == '__main__':
excel = HandleExcel('loginCaseData.xlsx', 'loginData')
print(excel.read_data())
# excel.write_data(7, 5, 'flora')