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()
封装Django ORM对象写入openpyxl的文件类
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 一.对象和类的概念 对象:真实存在的唯一事物 类:同一事物的公共属性与行为的抽取 面向对象的核心思想:找适合的对象...