库:openpyxl
内容包含:
1.读取Excel表格内容
2.将列表写入Excel的某一列
3.将列表写入Excel的某一行
话不多说,直接看代码:
from openpyxl import load_workbook
#定义一个Excel的操作类
class ExcelOperate():
def __init__(self,excel_path,excel_sheet_name):
'''
:param excel_path: 测试数据Excel文件路径
:param excel_sheet_name: excel文件sheet页名称
'''
self.excel_path = excel_path
self.excel_sheet_name = excel_sheet_name
def read_excel_data(self):
'''
读取Excel 测试数据,保存到列表
:param excel_path: 测试数据Excel文件路径
:param excel_sheet_name: excel接口测试数据所在的sheet页名称
:return:
'''
wb = load_workbook(self.excel_path)
# excel sheet 页名称,可以将多个接口的测试数据维护在一个excel表里
ws = wb[self.excel_sheet_name]
# 读取excel文件数据,保存到列表
excel_data = [] # 列表套列表,相当于二维数组
for row in ws.iter_rows(min_col=1, min_row=2, max_row=ws.max_row, max_col=ws.max_column):
single_row = []
for cell in row:
single_row.append(cell.value)
excel_data.append(single_row)
#返回二维数组
return excel_data
def write_excel_data_col(self,start_col,list_name):
'''
将列表循环写入Excel某列
:param start_col: 需要写入的列数,int类型
:param list_name: 列表名称
:param save_excel_name: 保存的Excel名称
:return:
'''
wb = load_workbook(self.excel_path)
ws = wb[self.excel_sheet_name]
row_count=0
while row_count < (len(list_name)):
# row=row_count + 2,跳过表头,从第二行开始写入
ws.cell(row=row_count + 2, column=start_col, value=list_name[row_count]).value
row_count += 1
wb.save(self.excel_path)
def write_excel_data_row(self,start_row,list_name):
'''
将列表循环写入Excel某行
:param start_row: 需要写入的行数,int类型
:param list_name: 列表名称
:param save_excel_name: 保存的Excel名称
:return:
'''
wb = load_workbook(self.excel_path)
ws = wb[self.excel_sheet_name]
row_count = 0
while row_count < (len(list_name)):
# row=row_count + 2,跳过表头,从第二行开始写
ws.cell(row=start_row, column=row_count+1, value=list_name[row_count]).value
row_count += 1
wb.save(self.excel_path)