python - python Django excel xlwt

  显示原文与译文双语对照的内容

在 Django 站点上,我希望根据数据库中的某些数据生成一个excel文件。

我想使用 xlwt插件,但是它只有一个方法可以将数据保存到文件。 如何将文件获取到HttpResponse对象? 或者你知道一个更好的图书馆?

我还发现了这个 Fragment,但它并没有做我需要的。 我只需要将流从xlwt对象获取到响应对象( 没有写入临时文件)

时间: 原作者:

包装整齐我不知道这个 !

根据 doc,save(filename_or_stream) 方法采用一个文件名来保存,或者一个类似于流的文件。

而 Django 响应对象正好是像流一样的文件 ! 那么就做 xls.save(response) 。查看关于生成pdf插件的Django 文档,看到类似的情况。

编辑:shawnmilo的 ( 根据注释改编):


def xls_to_response(xls, fname):


 response = HttpResponse(mimetype="application/ms-excel")


 response['Content-Disposition'] = 'attachment; filename=%s' % fname


 xls.save(response)


 return response



然后,从视图函数中,只创建 xls 对象并完成


return xls_to_response(xls,'foo.xls')



原作者:

你可以将文件保存到 StringIO 对象,该对象类似于。

你可以在响应中返回StringIO对象的getvalue() 。 一定要添加标题以将它的标记为可以下载的电子表格。

原作者:
...