如何在.csv文件的列中插入值

时间:2020-07-27 23:34:44

标签: javascript node.js csv

如何在.csv文件的列中插入值?我正在尝试,但是我在文件中看到了数组[],[],[]

const csv = require('csv-parser')
const fs = require('fs')
const json2csv = require('json2csv').parse;
const results = [];
const fileName = 'copyData.csv'

    let results=[]
    fs.createReadStream('file.csv')
      .pipe(csv())
      .on('data', (data) => {
        
        Object.entries(data)
          .forEach(([key, value]) => {
                  data['3col']= 'dataString'
                  results.push(data);
                }
          })
      })
      .on('end', () => {
    
        fs.writeFileSync(fileName, results);
      });

该列已存在,其名称为“ 3col”

1 个答案:

答案 0 :(得分:0)

您需要使用json2csv将对象转换为csv。

fs.writeFileSync(fileName, json2csv(results));

我还添加了一个条件,即仅在“ 3col”列中插入“ dataString”。

if (key === "3col") {
   line[key] = 'dataString'
}

最终代码:

const csv = require('csv-parser')
const fs = require('fs')
const json2csv = require('json2csv').parse

const results = [];
const fileName = 'copyData.csv'

fs.createReadStream('file.csv')
    .pipe(csv())
    .on('data', (line) => {
        Object.entries(line)
            .forEach(([key, value]) => {
                if (key === "3col") {
                    line[key] = 'dataString'
                }
            })
        results.push(line);
    })
    .on('end', () => {
        fs.writeFileSync(fileName, json2csv(results));
    });