代码之家  ›  专栏  ›  技术社区  ›  sunwarr10r

Nodejs:将列表写入csv

  •  0
  • sunwarr10r  · 技术社区  · 8 年前

    如何将列表写入csv文件?我找不到这个案子的好例子。我有一个列表,如下所示:

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

    我希望它看起来像这样(preverred):

    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 回复  |  直到 8 年前
        1
  •  0
  •   rizwan shaikh    8 年前

    您可以使用csv编写包。

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