我有一个带有按钮的网站。单击该按钮后,会将许多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
答案 0 :(得分:-1)
您需要添加
output.seek(0)
关闭编写器后。
您可能还会发现编写起来更容易
return send_file(output, attachment_filename="output.xlsx", as_attachment=True)
(从send_file
导入flask
后)