使用pyExcelerator产生Django的动态Excel文件。确保唯一的临时文件名
-
19-09-2019 - |
题
我想生成关于来自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)
不隶属于 StackOverflow