且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

如何使用节点js将新列添加到csv文件

更新时间:2023-11-18 22:30:10

使用csv-parser软件包而不是fast-csv,并使用json2csv将json解析为csv.

Use csv-parser package instead of fast-csv, and json2csv for json to csv parsing.

您要做的是使用csv-parser将csv的每一行转换为json,在结果json对象中添加一个新字段,针对每一行执行此操作,将结果放入数组中,将该数组转换为带有json2csv包的csv.

What you want to do is to convert each row of the csv to json using csv-parser, add a new field into the resulting json object, do this for each row, put the result in an array, convert that array into csv with json2csv package.

这是代码:

var csv = require('csv-parser');
var fs = require('fs');
var json2csv = require('json2csv');
var dataArray = [];

fs.createReadStream('your-original-csv-file.csv')
  .pipe(csv())
  .on('data', function (data) {
    data.newColumn = newColumnValue;
    dataArray.push(data);
  })
  .on('end', function(){
    var result = json2csv({ data: dataArray, fields: Object.keys(dataArray[0]) });
    fs.writeFileSync(fileName, result);
  });

fs.writeFileSync仍然会覆盖原始文件,因此您也可以将其保存到原始csv文件中.

fs.writeFileSync overrides the original file anyway, so you can also save into the original csv file.