class ReadWriteExcel():
'''
读写excel数据类
'''
def __init__(self):
self.wb = Workbook()
self.tables_names = []
def readexcel(self):
excel_datas = []
wb = load_workbook(read_excel_name)
# ws = wb.active # # 等同于 ws = wb.get_active_sheet() #通过_active_sheet_index设定读取的表,默认0读第一个表
sheet_names = wb.sheetnames # 获取所有表名
print('-----', sheet_names)
for i in range(len(sheet_names)): # 所有表
wb = load_workbook(read_excel_name)
# sheet_names = wb.sheetnames
w_name = sheet_names[i]
if w_name == table_name: # 指定sheet
# print('self.tables_names = ', self.tables_names)
table_datas = {'%s' % w_name:[]}
ws = wb[w_name] # 读取表数据
l_num = ws.max_column # 最大列
h_num = ws.max_row # 最大行
for i in range(1, h_num + 1): # 行
actionName = ws.cell(row=i, column=10).value
if not actionName:
continue
line_data = dict()
for j in range(1, l_num + 1):
line_data[ws.cell(row=1, column=j).value] = ws.cell(row=i, column=j).value
print(len(line_data), line_data)
table_datas['%s' % w_name].append(line_data)
excel_datas.append(table_datas)
break
return excel_datas
def writeexcel(self, excel_datas):
'''
[[{'key': 'value'}, {'key': 'value'}, ]]
:param excel_datas:
:return:
'''
print('excel_datas = ', len(excel_datas), excel_datas)
wb = Workbook()
ws = wb.active
for i in range(0, len(excel_datas)): # 几个表
table_name = list(excel_datas[i].keys())[0]
print('table_name = ', table_name)
# 创建新表写入数据
self.ws = self.wb.create_sheet("%s" % table_name, i) # 插入到最开始的位置
table_datas = excel_datas[i]
print('table_datas = ', table_datas)
for one_data in table_datas[table_name]: # 每张表每行数据
# print('one_data = ',type(one_data), len(one_data), one_data)
# line_datas = []
# for v in one_data.values():
# line_datas.append(str(v))
# 写入新表中
self.ws.append([str(v) for v in one_data.values()])
# 保存新文件
self.wb.save(save_excel_name)```
更多推荐
python读写excel指定sheet
发布评论