nodejsはcsvを利用してファイルをエクスポートします.
2503 ワード
小弟はやっとブログを書き始めました.不合理なところを教えてください.ここではnodejsの中でcsvを利用してファイルをエクスポートする機能について説明します.この例では主にfast-csvパッケージを利用してデータをcsvファイル形式にエクスポートします.最近はnodejsのエクスポートに関するexcelの機能を作っています.最後にcsvに関する導出を見つけました.以下はnodejsコードについてです.
次のコードはcsvに関して導出されたjsであり、ここでまずリードパケットが必要である.
id「名称」:row.
name、名前:row.
titleはcsvファイルの最初の行のヘッダを返します.
id:1,
name:'test'
title:'title 1'、{id:2,name:'test',title:'title 2'}はcsvファイルに出力される内容を表します.
注意:上の色の同じ部分の名前は必ず同じで、しかもローソンはjson配列です.
csv出力ファイルの内容フォーマットは以下の通りです.
番号付け
名前
名前
1
test
title 1
2
test
title 2
次のコードはcsvに関して導出されたjsであり、ここでまずリードパケットが必要である.
var fs = require("fs");
var csv = require("fast-csv");
module.exports = {
/**
*
* @param req:request
* @param res:response
* @param getTitle: excel
* @param rows: , json
* @param filezName:
*/
downLoad:function(req,res,getTitle,rows,fileName){
//
var endLine = false;
var stream = null;
var argus = process.argv.splice(2);
if(!argus || argus.length == 0){
stream = fs.createWriteStream("D:/temp.csv");
}else{
stream = fs.createWriteStream(argus[0]);
}
stream.on("finish", function(){
res.download('D:/temp.csv',fileName+'.csv',function(){
fs.unlinkSync('D:/temp.csv'); //
});
});
//
var csvStream = csv.format({headers: true})
.transform(getTitle);
csvStream.pipe(stream);
rows.forEach(function(row){
csvStream.write(row);
});
//
csvStream.end(function(){
console.log("end");
});
}
}
最後にこのjsファイルを呼び出す例を添付します.この例はrouterルートに書いてあります.ページをクリックしてエクスポートするときに実行するコードです.以下の通りです.var express = require('express');
var router = express.Router();
var fs = require("fs");
var downLoadUtil = require('../download');//
router.get('/exportCsv', function(req, res, next) {
downLoadUtil.downLoad(req,res,function(row){
return {" ":row.id," ":row.name," ":row.title};
},[{id:1,name:'test',title:'title1'},{id:2,name:'test',title:'title2'},{id:3,name:'test',title:'title3'}],'testFile')
});
module.exports = router;
上のコードの中でfunction(row){return{「番号」:row.id「名称」:row.
name、名前:row.
titleはcsvファイルの最初の行のヘッダを返します.
id:1,
name:'test'
title:'title 1'、{id:2,name:'test',title:'title 2'}はcsvファイルに出力される内容を表します.
注意:上の色の同じ部分の名前は必ず同じで、しかもローソンはjson配列です.
csv出力ファイルの内容フォーマットは以下の通りです.
番号付け
名前
名前
1
test
title 1
2
test
title 2