Nodejs fastCSV 實現資料的csv格式匯出

來源:互聯網
上載者:User

標籤:nodejs

Nodejs實現CSV格式的資料匯出

使用的第三方包:

fast-csv: npm install fast-csv

async: npm install async

mysql: npm install mysql

在這個實現中使用mysql資料來源將mysql中的資料匯入到對應的csv檔案中。


/** * 實現dump資料到csv檔案資料中 * 匯出csv資料模版 **/ var config = require('./info.json'); var fs = require("fs"); var csv = require('fast-csv'); var async = require("async"); var mysql      = require('mysql'); var connection = mysql.createConnection({ host     : config['mysql']['host'], user     : config['mysql']['user'], password : config['mysql']['pwd'], database : config['mysql']['db'] });//用於判斷是否是最後一個資料資訊var endLine = false;var stream = null;var paramArgus = process.argv.splice(2);if(!paramArgus || paramArgus.length == 0){stream = fs.createWriteStream("new.csv");}else{stream = fs.createWriteStream(paramArgus[0]);}stream.on("finish", function(){console.log("dump to csv ok!");});//產生頭部var csvStream = csv.format({headers: true}).transform(function(row){return {編號: row.id,需求名稱: row.name};});//擷取資料資訊介面function searchData(){csvStream.pipe(stream);connection.query("select id,name from snz_requirements" , function(err , results, callback){// console.log(results);// csv.write(results, {headers: true}).pipe(stream);results.forEach(function(row){csvStream.write({id:row['id'], name: row['name']});});//關閉寫入csvStream.end();connection.end();});}function asyncToCSV(){async.auto({createData: function(callDo){connection.query("select id,name from snz_requirements" , function(err , results, callback){if(callDo) callDo(null , results);});},//依次執行的處理findData: ['createData' , function(callDo , value){var reqValue = value['createData'];async.map(reqValue, function(row, callback) { connection.query("select count(*) as countV from snz_modules where requirement_id=?", row["id"] , function(err , results, callbackDeal){row["count"] = results[0].countV;if(callback) callback(null , row);});}, function(err,results) { //當整個map中的資料都執行完成之後才會執行下一個隊列中的functionif(callDo) callDo(null , results);});}], showDetail: ['findData' , function(callDo , value){//通過csv寫入到輸出資料流中儲存到csv檔案csv.write(value['findData'], {headers: true}).pipe(stream);connection.end();if(callDo) callDo(null , "end!");}]},function(err , value){// console.log(value);});}asyncToCSV();


Nodejs fastCSV 實現資料的csv格式匯出

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.