python操作excel作业---openpyxl

'''
作业一:
1, 编写上课的 login 函数的测试用例方法;
2, 通过run.py收集和运行所有的测试;
3, 使用htmltestrunner生成测试报告。
'''

import unittest
import os
from  HTMLTestRunnerNew import HTMLTestRunner

#初始化一个加载器loader
loader  = unittest.TestLoader()

#获取文件tests的路径
dir_path  = os.path.dirname(os.path.abspath(__file__))
case_path = os.path.join(dir_path,'tests')

#discover所有的cases
test_suite = loader.discover(case_path)

#执行用例 生成html报告
with open('test_report.html','wb') as f:
    runner = HTMLTestRunner(
        f,
        title='作业1的自动化测试报告',
        description='测试报告描述',
        tester='juan cao'
    )
    runner.run(test_suite)



'''
作业二:
1, 编写上课的 login 函数测试用例,保存到 cases.xlsx 文件;
2,通过 openpyxl 读取所有的测试用例数据。
3, 每一行的用例可以通过列表接收,也可以通过字典接收。
4, 不需要关闭文件,不需要封装。
'''
import openpyxl
#打开excel文件
workbook = openpyxl.load_workbook('cases.xlsx')

#读取表单
sheet = workbook['Sheet1']

#获取数据
#方法一 嵌套列表 切片
#获取所有的行
rows = list(sheet.rows)
data = []
for row in rows[1:]:     #去除第一行标题
    data_row = []
    for each in row:
        data_row.append(each.value)
    data.append(data_row)
print('列表嵌套列表:{}'.format(data))

#方法二、嵌套列表  枚举
rows = list(sheet.rows)
list4 = []
for k,v in enumerate(rows):
    if k != 0:
        list3 = []
        for each in v:
            list3.append(each.value)
        list4.append(list3)
print('列表嵌套列表:{}'.format(list4))


#嵌套字典方法一--zip()方法,字典可读性更强
rows = list(sheet.rows)
key_list = []
for each in rows[0]:
    key_list.append(each.value)

data = []
for row in rows[1:]:
    dic = {}
    data_row = []
    for each1 in row:
        data_row.append(each1.value)
    dic = dict(zip(key_list,data_row))
    data.append(dic)
print('列表嵌套字典:{}'.format(data))


#嵌套字典方法二----enumerate()
data = []
rows = list(sheet.rows)
headers = []
for title in rows[0]:
    headers.append(title.value)

for row in rows[1:]:
    row_data = {}
    for idx,cell in enumerate(row):
        row_data[headers[idx]] = cell.value
    data.append(row_data)
print(data)
原文地址:https://www.cnblogs.com/ananmy/p/12973006.html