当我试图将excel文件作为httpresponse服务时,我有一个问题,它的大小几乎是我的两倍,当我试图打开它时,它是腐败的。
我的设置如下:
填充工作簿。
然后(按照openpyxl文档)将工作簿保存为流,并将其保存为httpresponse对象,通过django返回到我的网站。
with NamedTemporaryFile() as tmp:
wb.save(tmp.name)
tmp.seek(0)
stream = tmp.read()
response = HttpResponse(content=stream, content_type="application/ms-excel")
# I've also tried with application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
response['Content-Disposition'] = 'attachment; filename=Excel.xls'
return response
在我的模板中,我有一些jquery代码,它为用户下载excel。以下是这个问题的答案:Get excel file (.xlsx) from server response in ajax
这一切都很好,但是所产生的下载文件已经损坏,虽然我预计它的大小大约为7 7mb,但实际上它的大小是16 7mb。
有人知道我做错了什么吗?
发布于 2020-03-02 21:53:04
您试过在二进制模式下打开这个吗?这对我有帮助。我相信下面的代码会有所帮助:
使用NamedTemporaryFile(mode='rb')作为tmp:.
https://stackoverflow.com/questions/60329111
复制相似问题