Node.js:将列表写入CSV

时间:2018-10-03 13:39:55

标签: javascript node.js csv

如何将列表写入csv文件?对于这种情况,我找不到任何好的例子。我有一个看起来像这样的列表:

list1 = ["label1", 100, 100, "label2", 200, 200, "label3", 300, 300];

我希望它看起来像这样(已伪装):

enter image description here

或类似这样:

enter image description here

我的方法是使用var csv = require('fast-csv');,但它的库太旧了,而且对我来说也无法正常工作。

var ws = fs.createWriteStream('data.csv');
csv.write(list1, {true}).pipe(ws);

2018年最好的方法是什么?

1 个答案:

答案 0 :(得分:0)

您可以使用csv-write程序包。

const createCsvWriter = require('csv-writer').createObjectCsvWriter;

let list1= ["label1",100,200,"label2",300,400,"label3",500,600];

let headerRec = [];
let records = [];

for(let i of list1){
 if(typeof(i)=="string"){
   let key = i
   let index = list1.indexOf(i);
   headerRec.push({id:i,title:i}); 
   records.push({[i]:list1[index+1]});
   records.push({[i]:list1[index+2]});
}

}
const csvWriter = createCsvWriter({
  path: './file.csv',
  header: headerRec
});
csvWriter.writeRecords(records)      
.then(() => {
    console.log('...Done');
});