我需要从django的数据库向访问者提供excel格式的数据。
我唯一能想到的方法就是通过这些步骤:
Workbook
对象从openpyxl
包装它。这样就行了。但是,我认为还有更好的方法。我的意思是,也许有一种方法可以直接将openpyxl
对象作为HttpResponse
返回,而不需要中间文件介质。
所以,我这里的问题是:返回openpyxl
的Worbook
对象可以吗?(我是openpyxl
的新手)
发布于 2020-07-19 03:45:33
由于save_virtual_workbook将过时,所以我使用了流。
from openpyxl import Workbook
from tempfile import NamedTemporaryFile
def exportToExcel(request):
workbook = Workbook()
...
with NamedTemporaryFile() as tmp:
workbook.save(tmp.name)
tmp.seek(0)
stream = tmp.read()
response = HttpResponse(content=stream, content_type='application/ms-excel', )
response['Content-Disposition'] = f'attachment; filename=ExportedExcel-{datetime.now().strftime("%Y%m%d%H%M")}.xlsx'
return response
https://stackoverflow.com/questions/33217306
复制相似问题