簡體   English   中英

使用pyExcelerator使用Django生成動態Excel文件。 確保唯一臨時文件名

[英]Use pyExcelerator to generate dynamic Excel file with Django. Ensure unique temporary filename

我想根據Django的請求生成動態Excel文件。 庫pyExcelerator執行此操作,但我沒有找到任何方法來使用Excel文件的內容,而不生成服務器端臨時Excel文件,讀取它,使用其內容並刪除它。

問題是pyExcelerator只提取Excel文件內容的方法是通過以下方式保存它:

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

然后讀取臨時文件內容。 我不能使用標准庫“tempfile”,因為它不接受文件,只接受文件名。 如何確保文件名是唯一的,並且文件一旦被使用就會被刪除?

pyExcelerator是非維護的,但它有一個fork, 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 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM