赞
踩
其他的库:
openpyxl:第三方库 支持的格式有:.xlsx、.xlsm、.xltx、.xltm,l不支持.xls文件格式【转化】
-1)安装 :pip + pycharm两种方式安装都可以
-2)导入:全部导入 和部分导入
excel表格操作有几个概念和相关的操作:
读取excel表格里所有内容:sh.values
# import openpyxl
from openpyxl import load_workbook
from pathlib import Path
# 0、路径处理: 文件不能写绝对路径 用相对路径处理
exc_path = Path(__file__).absolute().parent / "testcase65.xlsx"
# 1、加载工作簿对象
wb = load_workbook(exc_path)
# 2、找到读取数据的表单: login
sh = wb["login"]
#3、找到单元格: cell 某行某列决定表格 -- 行和列是从1开始的
cell = sh.cell(row=1,column=1)
#4、得到单元格里的内容 -value
cell_value = sh.cell(row=1,column=1).value
# print(cell_value)
# 5、读取所有内容 -- for循环遍历到每一行的数据。
# print(list(sh.values))
# for row in sh.values:
# print(row)
# 6、扩展: 获取部分内容 某个区间的行列 == 元组的嵌套 每行数据是一个元组
# part_value = sh["A1:C3"]
# print(part_value)
# for row in part_value:
# print(row) # (<Cell 'login'.A1>, <Cell 'login'.B1>, <Cell 'login'.C1>)
# for col in row:
# print(col.value)
# 7、修改的操作 --了解 单元格的内容进行重新赋值, 一定要记得保存。
sh.cell(row=1, column=1).value = "case_id"
# 保存操作
wb.save("testcase65.xlsx")
# 关闭excel
wb.close()
excel读取的数据的类型的问题总结:
# import openpyxl
from openpyxl import load_workbook
from pathlib import Path
# 0、路径处理: 文件不能写绝对路径 用相对路径处理
exc_path = Path(__file__).absolute().parent / "testcase65.xlsx"
# 1、加载工作簿对象
wb = load_workbook(exc_path)
# 2、找到读取数据的表单: login
sh = wb["login"]
#3、找到单元格: cell 某行某列决定表格 -- 行和列是从1开始的
cell = sh.cell(row=1,column=1)
#4、得到单元格里的内容 -value
cell_value = sh.cell(row=2,column=7).value
print(cell_value,type(cell_value))
接口自动化测试的项目实战-- 存储为Python数据格式。原则: 方便读取数据
from openpyxl import load_workbook
from pathlib import Path
exc_path = Path(__file__).absolute().parent / "testcase65.xlsx"
wb = load_workbook(exc_path)
sh = wb["login"]
cases = list(sh.values) # 所有的用例的列表 [(第一行-title),(第二行用例),(),()]
title = cases[0] # 得到标题行
list_case = []
for case in cases[1:]:
data = dict(zip(title,case)) # 第一条用例的字典
list_case.append(data) # 每一条用例追加到列表里。
print(list_case)
# 简化列表推导式?
# cases = list(sh.values) # 所有的用例的列表 [(第一行-title),(第二行用例),(),()]
# title = cases[0] # 得到标题行
# list_case = [ dict(zip(title,case)) for case in cases[1:]]
接口自动化测试的项目实战-- 存储为Python数据格式。原则: 方便读取数据
因为这个方法会经常使用到,所以我们需要做封装。
-思考?封装成类还是函数呢?–函数比较好。
from pathlib import Path
from openpyxl import load_workbook
def read_data(exc_path,sheetname):
"""
这是读取excel表格函数
:param exc_path: 用例文件的路径
:param sheetname: 用例表单的名字
:return:
"""
wb = load_workbook(exc_path)
sh = wb[sheetname]
cases = list(sh.values) # 所有的用例的列表 [(第一行-title),(第二行用例),(),()]
title = cases[0] # 得到标题行
list_case = []
for case in cases[1:]:
data = dict(zip(title,case)) # 第一条用例的字典
list_case.append(data) # 每一条用例追加到列表里。
return list_case
# 简化列表推导式?
# cases = list(sh.values) # 所有的用例的列表 [(第一行-title),(第二行用例),(),()]
# title = cases[0] # 得到标题行
# list_case = [ dict(zip(title,case)) for case in cases[1:]]
if __name__ == '__main__':
exc_path = Path(__file__).absolute().parent / "testcase65.xlsx"
print(read_data(exc_path, "cart"))
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。