原文链接: flask json 转xlsx 使用临时文件
下一篇: 跨域会发送两次请求
上传一个json格式的数组, 后端将其转化为xlsx后返回给前端下载
@app.route('/list2xlsx', methods=['post'])
def list2xlsx():
data = request.json['data']
# print(data,)
# print(type(data))
df = pd.DataFrame(data)
# print("df", df)
def send_file():
with TemporaryFile() as f:
df.to_excel(f, index=None)
f.flush()
f.seek(0)
d = f.read()
yield d
response = Response(send_file())
response.headers["Content-disposition"] = 'attachment; filename=t.xlsx' # 如果不加上这行代码,导致下图的问题 return response
return response
前端
async download() {
let data = await list2xlsx(this.data_list);
let blob = new Blob([data], {
type:
"type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8"
});
let url = URL.createObjectURL(blob);
let link = document.createElement("a");
link.href = url;
let date = new Date(+new Date() + 8 * 3600 * 1000)
.toISOString()
.replace(/T/g, " ")
.replace(/\.[\d]{3}Z/, "");
link.download = `${date}.xlsx`;
link.click();
},