Flask对Excel文件的响应给出了损坏的Excel文件

时间:2019-07-16 16:32:55

标签: flask pandas.excelwriter

我有一个带有按钮的网站。单击该按钮后,会将许多pandas dataframers返回到excel文件中,并以下载的形式自动返回该excel文件。

似乎正常,但当我打开文件时,它似乎已损坏。它询问是否应恢复某些选项卡。我正在使用下面的代码。感谢任何建议,这可能是造成这种情况的原因。

import io
from flask.helpers import make_response
from pandas.io.excel import ExcelWriter

output = io.BytesIO()
writer = ExcelWriter(output)

dfs = [df1,df2....]
tabs ['tab1','tab2',....]

for df, tab_name in zip(dfs, tab_names):
    df.to_excel(writer, tab_name)
writer.close()

resp = make_response(output.getvalue())
resp.headers['Content-Disposition'] = 'attachment; filename=output.xlsx'
resp.headers["Content-type"] = "text/csv"
return resp

1 个答案:

答案 0 :(得分:-1)

您需要添加

output.seek(0)

关闭编写器后。

您可能还会发现编写起来更容易

return send_file(output, attachment_filename="output.xlsx", as_attachment=True)

(从send_file导入flask后)