[英]Node js excel export:Download file without creating a file
我正在嘗試使用fast-csv
在我的應用程序中實現excel導出。
這是出口流程
1)從數據庫獲取數據。
2)准備並下載excel
function export(req, res) {
let path = "sample.csv";
exportService.exportExcel(
{
path: path,
data: data,
},
status => {
res.download(path);
},
);
}
ExportService
function exportExcel(params, callback) {
csv.writeToPath(params.path, params.data, { headers: true }).on("finish", function() {
console.log("done");
callback(true);
});
}
效果很好,但是此方法有一個缺點,那就是需要在下載之前寫入文件,是否有任何方法可以避免這種臨時寫入或從文件夾下載后刪除文件
最快的方法是將csvWriteStream通過管道傳遞到res。
function(req, res) {
res.setHeader('Content-Type', 'text/csv');
var data = [
{a: "a1", b: "b1"},
{a: "a2", b: "b2"}
];
var csvStream = csv.createWriteStream({headers: true})
.transform(function(row, next){
setImmediate(function(){
next(null, {A: row.a, B: row.b});
});
})
csvStream.pipe(res)
data.map(function(row) { csvStream.write(row) })
csvStream.end()
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.