class ExportFile:
def __init__(self, filename, obj_list, keys_list, verbose_list):
"""
:param filename: 文件名
:param obj_list: 对象
:param keys_list: key对应对象的每一个字段
:param verbose_list: value对应verbose_name excel 第一行的每列表示
"""
if not hasattr(obj_list[0], 'get'):
raise AttributeError('请传入ORM字典类型格式 PS: objects values')
self.filename = filename
self.obj_list = obj_list
self.wb = Workbook()
self.ws = self.wb.active
self.values_list = verbose_list
self.key_list = keys_list
def run(self):
self.create_row()
self.create_other_row()
def create_row(self):
for col_1 in range(1, len(self.values_list) + 1):
self.ws.column_dimensions[string.ascii_uppercase[col_1 - 1]].width = 20
self.ws.cell(row=1, column=col_1).value = self.values_list[col_1 - 1]
def create_other_row(self):
row_ = 2
for obj in self.obj_list:
for x in range(1, len(self.key_list) + 1):
self.ws.cell(row_, x).value = obj[self.key_list[x - 1]]
row_ += 1
def save(self):
# 保存
self.wb.save(self.filename)
self.wb.close()
网友评论