[] Django Django administración de exportación tabla de Excel

de django.contrib importación de administración 

# Registro de sus modelos aquí. 
importación xlwt
 de django.http importación HttpResponse 

de dal importación modelos
 # Registre sus modelos aquí. 

de openpyxl importación Cuaderno de 


clase FundAdmin (admin.ModelAdmin): 
    acciones = [ " export_as_excel " ] 
    list_display = ( ' título ' , ' nombre ' , ' Tipo ', ' Unidad ' , ' estado ' , ' CREATE_TIME ' ) 
    list_filter = [ ' título ' , ' nombre ' , ' tipo ' , ' unidad ' , ' estado ' , ' CREATE_TIME ' ,] 


    def export_as_excel (self, solicitud, queryset) :
         print ( " queryset " ,queryset) 
        meta = self.model._meta  # Define el nombre del archivo en forma :. aplicación nombre de la clase nombre del modelo 
        de impresión ( " Meta " , Meta) 
        FIELD_NAMES son = [field.name de campo en meta.fields]   # modelo de todos los nombres de los campos 

        de respuesta = la HttpResponse (el content_type = ' aplicación de archivo / msexcel ' )   # definen el tipo de contenido respuesta 
        respuesta [ ' el contenido-Disposition ' ] = F ' apéndice; nombre de archivo = {} .XLSX Meta '   # definen el formato de datos en respuesta a 
        WB = el libro de trabajo ()   # crear el libro 
        WS = wb.active   #tabla de hoja en el activo actual 
        ws.append (FIELD_NAMES son)   # modelo como los nombres de los campos de cabecera escritos en la primera fila 
        para obj en QuerySet:   # recorrer la lista objeto seleccionado 
            Imprimir (obj)
             para campo en FIELD_NAMES son: 

                Data = [F ' { getattr (obj, campo)} '  para el campo en FIELD_NAMES son]   # formato de texto de la lista modelo de valor de atributo compuesto 

            ws.append (datos)   # escrita del modelo valor del atributo 
        wb.save (respuesta)   # almacena los datos en respuesta al contenido de 
        retorno respuesta 


    export_as_excel.short_description =' Exportación Excel '   # la operación del texto de la pantalla en el admin 



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

 

Supongo que te gusta

Origin www.cnblogs.com/wanghong1994/p/12656817.html
Recomendado
Clasificación