class ExcelHandle_1:
def __init__(self,file_name,sheet_name):
#file_name为文件存放地址,sheet_name为表单名字
self.file_name=file_name
self.sheet_name=sheet_name
#打开file_name这个.xlsx文件
self.wb=openpyxl.load_workbook(file_name)
#读取指定表单得所有数据,并以dict形式输出
def read_all(self,sheet_name):
#对输入表单进行判断,若没有输入就默认生成第一个表单位置
if sheet_name is None:
ws=self.wb.active
else:
ws=self.wb.get_sheet_by_name(sheet_name)
#通过遍历拿取表头得信息,并以列表得形式返回
header=[c.value for c in ws[1]]
#通过获取最大row与column进行遍历 使用cell().value方法拿到所有值并返回列表,并与表头得列表信息使用diz方法进行重新组合成一对一关系,并转换成字典返回
max_row=ws.max_row
max_column=ws.max_column
test_data=[]
for row in range(2,max_row+1):
row_data=[]
for coloumn in range(1,max_column+1):
row_data.append(ws.cell(row,coloumn).value)
row_data=dict(zip(header,row_data))
test_data.append(row_data)
return test_data
#写入数据,需要写入得数据需要是str类型
def write_data(self,row,result,actul):
sheet=self.wb.get_sheet_by_name(self.sheet_name)
column_result=eval(Read_config(Config_Http).get_value('excelcolumn','column_result'))
column_actual=eval(Read_config(Config_Http).get_value('excelcolumn','column_catual'))
#修改坐标row,column的值
sheet.cell(row,column_result).value=result
sheet.cell(row,column_actual).value=actul
#保存文档
self.save_data()
#保存数据并关闭文档
def save_data(self):
self.wb.save(self.file_name)
self.wb.close()