【django】 django后台管理 导出excel表

前端之家收集整理的这篇文章主要介绍了【django】 django后台管理 导出excel表前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
from django.contrib import admin

# Register your models here.
 xlwt
from django.http  HttpResponse

from dal  models
 Register your models here.

from openpyxl  Workbook


class FundAdmin(admin.ModelAdmin):
    actions = ["export_as_excel"]
    list_display = ('title',nametypeunitstatuscreate_time')
    list_filter = [,]


    def export_as_excel(self,request,queryset):
        print(querysetMeta = self.model._Meta   用于定义文件名,格式为: app名.模型类名
        MetaMeta)
        field_names = [field.name for field in Meta.fields]   模型所有字段名

        response = HttpResponse(content_type=application/msexcel')   定义响应内容类型
        response[Content-Disposition'] = fattachment; filename={Meta}.xlsx'   定义响应数据格式
        wb = Workbook()   新建Workbook
        ws = wb.active   使用当前活动的Sheet表
        ws.append(field_names)   将模型字段名作为标题写入第一行
        for obj in queryset:   遍历选择的对象列表
            print(obj)
            in field_names:

                data = [f{getattr(obj,field)}' in field_names]   将模型属性值的文本格式组成列表

            ws.append(data)   写入模型属性
        wb.save(response)   将数据存入响应内容
        return response


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



admin.site.register(models.Fund,FundAdmin)

 

猜你在找的Django相关文章