nodejsはcsvを利用してファイルをエクスポートします.

2503 ワード

小弟はやっとブログを書き始めました.不合理なところを教えてください.ここではnodejsの中でcsvを利用してファイルをエクスポートする機能について説明します.この例では主にfast-csvパッケージを利用してデータをcsvファイル形式にエクスポートします.最近はnodejsのエクスポートに関するexcelの機能を作っています.最後にcsvに関する導出を見つけました.以下はnodejsコードについてです.
次のコードは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