数据驱动ddt,所有的方法和业务逻辑保持不变,变的是你的接口的数据
1.安装openpyxl
pip install openpyxl
2.读取excel数据
1):打开excel:创建表对象
2):获取表单:获取表单对象
3):查看单元格:获取单元格对象
4):获取单元格数据:获取单元格内容
5):关闭excel:表:关闭excel
3.写excel数据
基本使用案例
import openpyxl
# 1):打开excel:创建表对象
wb_obj = openpyxl.load_workbook(filename="test.xlsx")
# 2):获取表单:获取表单对象
sheet_obj = wb_obj["can"]
# 3):查看单元格:获取单元格对象
cell_obj = sheet_obj["B6"]
# 4):获取单元格数据:获取单元格内容
result = cell_obj.value
print(result)
# 5):关闭excel:表:关闭excel
wb_obj.close()
wb_obj = openpyxl.load_workbook(filename="test.xlsx")
#filename:文件名称(要带路径)
#read_only=FalseL:读写控制,默认是False,可读可写
#keep_vba=KEEP_VBA:是否保留vba代码
#data_only=False:只显示公式,True:自动计算公式,读出结果
#keep_links=True:保留默认外部链接
获取表单对象
sheet_obj = wb_obj["can"]
#如果不知道表单名称,可获取所有的表单名称
res=wb_obj.sheetnames
print(res)#['can', 'Sheet2', 'Sheet3']
sheet_obj = wb_obj["can"]等价于wb.get_sheet_by_name("sheet的名字")
cell_obj=sheet_obj["C6"]
res=cell_obj.value
print(res)
cell_obj=sheet_obj.cell(row=3,column=3)
print(cell_obj.value)
import openpyxl
# 1):打开excel:创建表对象
wb_obj = openpyxl.load_workbook("test.xlsx")
# # 2):获取表单:获取表单对象
sheet_obj = wb_obj["can"]
# print(sheet_obj)
# 3):查看单元格:获取单元格对象
cell_obj = sheet_obj.cell(row=3, column=3)
# 4):查看单元格:获取单元格对象
print(cell_obj.value)
# 行切片
results = sheet_obj.iter_rows(min_row=1, max_row=4, min_col=1, max_col=3, values_only=True)
for lis in results:
print(lis)
"""
min_row=None:行切片的起始索引,默认为1
max_row=None:行切片的结束索引,默认为1
min_col=None:列切片的起始索引,默认为1
max_col=None列切片的结束索引,默认为1
values_only=False:是否直接返回对象的属性(数据还是对象),True:返回数据,False:返回对象
"""
# 列切片(参数与行切片一致)
results1 = sheet_obj.iter_cols(min_row=1, max_row=2, min_col=1, max_col=2, values_only=True)
for lis1 in results1:
print(lis1)
运行结果
湖北3
(1, '北京1', '湖北1')
(2, '北京2', '湖北2')
(3, '北京3', '湖北3')
(4, '北京4', '湖北4')
(1, 2)
('北京1', '北京2')
# 以列的形式,获取sheet的全部cell
data = tuple(sheet_obj.columns)
# 以行的形式,获取sheet的全部cell
data = tuple(sheet_obj.rows)
# 获取所有数据
data = tuple(sheet_obj.values)
#打印所有行的数据
print(data)
# 指定返回某一行数据
print(data[1])
wb_obj.close()
sheet=wb_obj.active
sheet.cell(row=1,column=1,value="6666")
wb_obj.save("test.xlsx")
wb_obj.active
- 赋值操作 -保存文件;sheet["A1"] = "6666"
,等价于上面第三行代码;