gpt4 book ai didi

javascript - 如何在前端从后端下载excel文件?

转载 作者:太空宇宙 更新时间:2023-11-03 23:48:59 26 4
gpt4 key购买 nike

我想启动浏览器下载后端生成的 Excel 文件,但我不知道如何传递这种响应。

app.get('/all', function (req, res) {
db.query(...) LIMIT 20000;")
.then(function (data) {
let result = []
data.forEach(element => {
result.push(element)
})

/* make the worksheet */
var ws = XLSX.utils.json_to_sheet(data);

/* add to workbook */
var wb = XLSX.utils.book_new();
XLSX.utils.book_append_sheet(wb, ws, "All");

XLSX.writeFile(wb, 'alltest1.xlsx'); //This saves the file in my server but I don't know how to send it as a response.

console.log('Ready');

res.send(result);
})
.catch(function (error) {
console.log("ERROR:", error)
})
})

我一直在尝试在前端创建 Excel,但由于我认为数据量很大,chrome 内存不足。我也尝试过传递缓冲区,但我得到的文件似乎已损坏。

最佳答案

设置响应头Content-Disposition Content-Type文件的名称,告诉浏览器文件作为响应发送

res.setHeader('Content-Disposition',
"attachment; filename='alltest1'; filename*=UTF-8\'\'alltest1.xlsx");
res.setHeader('Content-Type', "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");

并将文件内容作为响应发送

res.send(wb)

或者您也可以使用 res.download .

res.download(filePath, fileName, (err) => { if (err) console.log(err); })

关于javascript - 如何在前端从后端下载excel文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60039829/

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