我想生成关于来自Django的请求动态Excel文件。该库pyExcelerator这样做,但我还没有发现任何方式使用Excel文件的内容而不产生服务器端临时Excel文件,读取它,使用它的内容和删除它。

的问题是,pyExcelerator只提取Excel文件中的内容的方法是通过将其保存:

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

和然后读临时文件内容。我不能使用标准库“临时文件”,因为它不接受文件,只需一个文件名。我如何能确保文件名是唯一的,一旦它已被使用的文件被删除?

有帮助吗?

解决方案

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