Ich muss den Besuchern eine Excel-formatierte Daten aus der Datenbank von django zur Verfügung stellen.
Ich kann nur an diese Schritte denken:
Workbook
object von openpyxl
. Das sollte es tun. Aber ich denke, es gibt noch einen besseren Weg, dies zu tun. ich meine
Vielleicht gibt es eine Möglichkeit, openpyxl
object als HttpResponse
direkt zurückzugeben
ohne Zwischenspeichermedium.
Also, meine Frage hier ist: Ist es möglich, openpyxl
's Worbook
zurückzugeben?
Objekt? (Ich bin neu mit openpyxl
)
Sie müssen die Daten nicht irgendwo auf der Festplatte speichern. openpyxl hat eine Möglichkeit dies zu tun, obwohl es nicht sehr gut dokumentiert ist. Vor langer Zeit habe ich etwas Ähnliches mit xlwt erstellt, aber ich habe kürzlich auch etwas Ähnliches in Falcon Framework, mit openpyxl.
Wenn Sie diese beiden zusammenfügen, würde Ihr Code etwa wie folgt aussehen:
%Vor%Wenn Sie größere Dateien erzeugen, würde ich empfehlen, StreamingHttpResponse zu verwenden, aber ich glaube, das wird Sie zumindest weiterbringen.
Dies ist nur ein spontaner Ausschnitt, der auf einer Zusammenführung der beiden Projekte basiert, an denen ich gearbeitet habe, also ist es vielleicht nicht genau richtig. Es sollte aber ziemlich nah sein. Die Ausgabe in Falcon sah so aus:
%Vor% UPDATE:
Das ist jetzt viel einfacher, da ich meine alte django-excel-response
-Bibliothek mit openpxl komplett neu geschrieben habe! Es kann jetzt hier gefunden werden: Ссылка
Du kannst es mit pip install django-excel-response
installieren und es als Alternative zu Djangos HttpResponse
verwenden! Es ist nur eine minimale Dokumentation vorhanden und Verbesserungen / Vorschläge sind willkommen. :)