3

我想根据 Django 的请求生成一个动态 Excel 文件。pyExcelerator 库可以做到这一点,但我还没有找到任何方法来使用 Excel 文件的内容,而无需生成服务器端临时 Excel 文件、读取它、使用它的内容并删除它。

问题是 pyExcelerator 提取 Excel 文件内容的唯一方法是通过以下方式保存它:

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

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

4

2 回答 2

11

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
于 2009-12-11T09:24:59.237 回答
3

为什么不能使用tempfile模块?

怎么样:

import tempfile
fd, filename = tempfile.mkstemp()
fd.close()
workbook.save(filename)
于 2009-12-11T09:18:59.483 回答