استخدم PyExcelerator لتوليد ملف Excel الديناميكي مع Django. ضمان اسم ملف مؤقت فريد

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

سؤال

أرغب في إنشاء ملف Excel ديناميكي عند الطلب من Django. يقوم المكتبة PyExcelerator بهذا، لكنني لم أجد أي طريقة لاستخدام محتويات ملف Excel دون إنشاء ملف Excel مؤقت من جانب الخادم، وقراءته، باستخدام محتوياته وحذفه.

المشكلة هي أن PyeFelerator طريقة فقط لاستخراج محتويات ملف Excel هو حفظه عبر:

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

ثم اقرأ محتويات الملف المؤقتة. لا يمكنني استخدام المكتبة القياسية "tempfile" لأنه لا يقبل ملف، مجرد اسم ملف. كيف يمكنني التأكد من أن اسم الملف فريد ويتم حذف الملف بمجرد استخدامه؟

هل كانت مفيدة؟

المحلول

PyExcelerator غير معني، لكن لديه شوكة، XLWT., ، والتي يتم الحفاظ عليها ولديها المزيد من الميزات، بما في ذلك السماح لك بالحفظ إلى أي كائن يشبه الملفات. وهذا يشمل الادخار مباشرة إلى django HttpResponse:

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

نصائح أخرى

لماذا لا يمكنك استخدام tempfile وحدة؟

ماذا عن:

import tempfile
fd, filename = tempfile.mkstemp()
fd.close()
workbook.save(filename)
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top