0

我想在我的 csv 文件中添加一列,其中包含所有行的相同数据

我的 csv 文件:

sugar, 150, stock
salt, 30, stock
milk, 30, stockout

添加行后我的文件(预期结果):

product, sugar, 150, stock
product, salt, 30, stock
prouct, milk, 30, stockout

我想将“产品”字段添加到每一行,我的代码:

const writestream = fs.createWriteStream("file.csv", {
  flags: 'a'
});
writestream.write("," + "product");

这将在文件末尾返回产品,我该如何修复它

我可以使用 fast-csv 库来添加这个字段吗?

4

1 回答 1

0

这里问了一个类似的问题:How to add new column to csv file using node js。长话短说,使用 csv-parser 将 csv 转换为 json,添加您的字段,然后使用 json2csv 将该 json 转换回 csv。

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);
  });

这对我有用。唯一的问题是,我试图在我下载并重命名的多个文件上循环,它只是不会保存到所有文件,只有一个。

于 2021-11-05T18:48:16.357 回答