前言:为什么学openpyxl
1、openpyxl是用来操作excel
2、数据驱动(接口请求参数的数据都放在excel中)

一、Excel 用例的组成

接下来以名称为"case_data.xlsx"的Excel文件介绍openpyxl
在这里插入图片描述

二、安装openpyxl

1、首先需要安装 Python 环境,/
2、使用 win+R 打开运行,输入框输入 cmd
3、安装 openpyxl
   pip install openpyxl

三、openpyxl 读取 Excel 文件

from openpyxl import load_workbook
#加载Excel
workbook_object = load_workbook(filename='case_data.xlsx')  #将case_data.xlsx文件与Python文件放在同一级目录下,如果不在同一级目录,需要添加路径
#获取表单名称
names= workbook_object.sheetnames  #获取表单的名称返回list
#获取表单对象
#方法一
shett_object=workbook_object['login']
#方法二
shett_object1=workbook_object.worksheets[0]  #获取的表单返回的是list,所以可以通过索引取值
#获取单元格
#方法一
cell_object=shett_object['A1']  #获取得是单元格的对象“A1”,并非"A1"的值
print(cell_object.value)  #通过对象.value 可以获取"A1"的值(单元格内容)
#方法二
cell_object1=shett_object.cell(1,1)  #获取的是第一行第一列的值
print(cell_object1.value)
workbook_object.close()  #读完表后关闭Excel

四、行列操作

from openpyxl import load_workbook
 加载Excel
workbook_object = load_workbook(filename='case_data.xlsx')
#获取表单名称
shett_object = workbook_object.sheetnames[0]
行切片获取数据
result = shett_object.iter_rows(min_row=1, max_row=2, min_col=1, max_col=2, values_only=True) 
# 行切片  (索引从1开始,int类型,切片原则是,两边都包含,包含起始索引值和结束索引值)
# min_row  起始行的索引值
# max_row  结束行的索引值
# min_col  起始列的索引值
# max_col  结束列的索引值
# values_only  false:返回对象   true:返回单元格对应的数据
# 列切片与行切片相同,列切片使用 .iter_cols
printlist(result))
#打印出的结果是[('id', 'title'), (1, '登陆成功')]

五、数据封装


封装成一个类,接口测试框架中可以直接调用此方法

from openpyxl import load_workbook


class HandleExcel:
    def __init__(self, file_name, sheet_name):
        self.workbook_object = load_workbook(filename=file_name)
        self.sheet_object = self.workbook_object[sheet_name]

    def get_excel_tese_case(self):
        cases_list = []

        datas = list(self.sheet_object.iter_rows(values_only=True))  # 获取Excel表中的所有数据,按行显示,先是第一行的内容

        # 将Excel表中的数据拼成字典

        case_title = datas[0]  # 获取表头
        case_datas = datas[1:]  # 获取表数据
        for case in case_datas:
            result = dict(zip(case_title, case))
            cases_list.append(result)
        self.close_file()
        print(cases_list)
        return cases_list
        print(result)

    def close_file(self):
        self.workbook_object.close()


if __name__ == '__main__':
    cl = HandleExcel(file_name='case_data.xlsx', sheet_name='login')
    cl.get_excel_tese_case()
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐