使用NodeJS

时间:2016-07-30 11:00:19

标签: node.js csv

我正在研究NodeJS项目,我正在成功上传CSV文件并阅读它。

现在我想提取CSV文件中的列总数,并相应地读取数据。

我使用过多个CSV Nodejs模块,如Fast-CSV,CSV,Ya-CSV。但是,我无法使用这些模块提取列的总数和列的数据。如果您可以帮助我理解列的总数并且在此操作之后逐个读取列,那将是非常有帮助的。

1 个答案:

答案 0 :(得分:0)

我建议使用https://github.com/wdavidw/node-csv-parse,使用三行代码将CSV文件解析为对象数组:

var parse = require('csv-parse/lib/sync');
var yourCSVFile = '"column_1","column_2"\n"value 1","value 2"\n"value 3","value 4"';
var records = parse(yourCSVFile, {columns: true});

然后打破列很容易​​:

var columnResults = {};

for(var row =0; row < records.length; row++){
    for(var column in records[row]){
        if(!columnResults[column]){
            columnResults[column] = [];
        }
        columnResults[column].push(records[row][column]);
    }
}
console.log("Number of columns:", Object.keys(columnResults).length);
console.log("Column names:", Object.keys(columnResults));
console.log("Column data:", columnResults);

输出:

  

C:\ node test.js
  列数:2
  列名称:[&#39; column_1&#39;,&#39; column_2&#39; ]
  列数据:{column_1:[&#39;值1&#39;,&#39;值3&#39; ],第2栏:[&#39;值2&#39;,&#39;值4&#39; ]}