gpt4 book ai didi

javascript - 使用 Ajax 和 Flask 下载 Excel 文件

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:23:54 27 4
gpt4 key购买 nike

用户按下页面上表单中包含的按钮:

<form id="form">
<input type="button" id="export" value="Export"/>
</form>

单击按钮后,将进行以下 Ajax 调用:

ajaxCall('/export', {}, callback_export, 'get');

在哪里

function ajaxCall(url, params, callback, type) {
if (validate()) {
var request;
request = $.ajax({
url: url,
type: type,
data: params
});
}
request.done(function (response, textStatus, jqXHR){
callback(response);
});
}

Flask 应用程序如下所示:

@app.route('/export')
def export():
xl_file= '/absolute/path/to/excel/file.xlsx'
return send_file(xl_file, as_attachment=True, mimetype='application/vnd.ms-excel')

文件的文件内容正在返回给浏览器(见下图)而不是文件本身作为附件。

问题是,回调需要是什么样子才能接受作为文件附件的响应?或者,需要做哪些修改?

(是的,我搜索并阅读了很多关于 SE 的帖子。大多数讨论使用 form.submit() 方法但没有提供细节。我希望避免使用 form.submit() 因为 #form 中还有其他元素无法提交。)

enter image description here

最佳答案

您真的需要使用 ajax 吗?我发现 ajax 是一种解决方法,可以使用 flask 下载 excel 文件……但它对我不起作用。我只是以“rb”模式打开 excel 文件并更改 mimetype 以在 Windows 中被识别为 excel 文件。你的 Flast 只需要调用 getPlotExcel()。

@app.route("/getPlotExcel")
def getPlotExcel():
excelDownload = open("sample.xlsx",'rb').read()
return Response(
excelDownload,
mimetype="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
headers={"Content-disposition":
"attachment; filename=sample.xlsx"})

关于javascript - 使用 Ajax 和 Flask 下载 Excel 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26341294/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com