我正在研究NodeJS项目,我正在成功上传CSV文件并阅读它。
现在我想提取CSV文件中的列总数,并相应地读取数据。
我使用过多个CSV Nodejs模块,如Fast-CSV,CSV,Ya-CSV。但是,我无法使用这些模块提取列的总数和列的数据。如果您可以帮助我理解列的总数并且在此操作之后逐个读取列,那将是非常有帮助的。
答案 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; ]}