Utilizzare pyExcelerator per generare dinamica dei file Excel con Django. Assicurarsi che il nome del file temporaneo unico

StackOverflow https://stackoverflow.com/questions/1886744

Domanda

mi piacerebbe per generare un file di Excel dinamica su richiesta da Django. Il pyExcelerator biblioteca fa questo, ma non ho trovato un modo per utilizzare il contenuto del file di Excel senza generare un file di Excel temporanea sul lato server, la lettura, con il suo contenuto ed eliminarlo.

Il problema è che pyExcelerator unico modo per estrarre il contenuto del file di Excel è il risparmio tramite:

workbook = pyExcelerator.Workbook()
workbook.save("tmp_filename")

E poi leggere il contenuto del file temporanei. Non posso usare la libreria "tempfile" standard perché non accetta un file, solo un nome di file. Come posso assicurare che il nome del file è unico e che il file viene eliminato una volta che è stato utilizzato?

È stato utile?

Soluzione

pyExcelerator è più mantenuto, ma ha una forchetta, xlwt , che viene mantenuta e ha più caratteristiche, tra cui consentendo di salvare a qualsiasi oggetto simile a file. Questo include il salvataggio direttamente a un HttpResponse Django:

from django.http import HttpResponse
import xlwt

def my_view(request):
    response = HttpResponse(mimetype="application/ms-excel")
    response['Content-Disposition'] = 'attachment; filename="foo.xls"'
    wb = xlwt.Workbook()
    wb.save(response)
    return response

Altri suggerimenti

Perché non si può utilizzare il modulo tempfile?

Come su:

import tempfile
fd, filename = tempfile.mkstemp()
fd.close()
workbook.save(filename)
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top