首页 > 代码库 > Nodejs fastCSV 实现数据的csv格式导出

Nodejs fastCSV 实现数据的csv格式导出

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 = http://www.mamicode.com/value['createData'];>

Nodejs fastCSV 实现数据的csv格式导出