龙空技术网

Django Admin中增加导出Excel功能

七叶离殇花满楼 166

前言:

而今小伙伴们对“django modelform如何生成xecel”大约比较重视,朋友们都需要了解一些“django modelform如何生成xecel”的相关知识。那么小编也在网摘上汇集了一些关于“django modelform如何生成xecel””的相关资讯,希望同学们能喜欢,兄弟们快快来了解一下吧!

参考:

在使用Django Admin时, 对于列表我们有时需要提供数据导出功能, 如下图:

增加导出Excel功能

在Django Admin中每个模型的Admin类(继承至admin.ModelAdmin), 我们可以通过actions增加支持的动作, 值为当前类存在的方法名, 例如:

.......

@admin.register(Issue)

class IssueAdmin(admin.ModelAdmin):

......

actions = ['export_as_excel'] # 增加动作, 对应相应的方法名

def export_as_csv(self, request, queryset): # 具体的导出csv方法的实现

pass

export_as_excel.short_description = '导出Excel' # 该动作在admin中的显示文字

导出Excel方法详细实现如下:

from openpyxl import Workbook

....

def export_as_excel(self, request, queryset):

meta = self.model._meta # 用于定义文件名, 格式为: app名.模型类名

field_names = [field.name for field in meta.fields] # 模型所有字段名

response = HttpResponse(content_type='application/msexcel') # 定义响应内容类型

response['Content-Disposition'] = f'attachment; filename={meta}.xlsx' # 定义响应数据格式

wb = Workbook() # 新建Workbook

ws = wb.active # 使用当前活动的Sheet表

ws.append(field_names) # 将模型字段

龙腾原创

联系作者longtestyan

标签: #django modelform如何生成xecel