如何在JavaScript中将CSV文件读入2D数组?

时间:2018-10-18 16:40:53

标签: javascript

我有一个很大的.csv文件。它具有约130,000行和13列。我需要在Web应用程序中使用该数据创建一堆图形。我对JavaScript非常陌生。谁能帮助我阅读这个大文件并将数据存储到2D数组中?

3 个答案:

答案 0 :(得分:0)

我认为您可以使用此lib http://c2fo.io/fast-csv 要么 https://www.papaparse.com/

此库使用流,并且您可以使用大文件并修改每一行

答案 1 :(得分:0)

如果您正在使用节点应用程序,请尝试在npm上查找软件包,

https://www.npmjs.com/search?q=csv

否则,您可能需要查看以下链接以获取核心javascript代码:

How to read data From *.CSV file using javascript?

答案 2 :(得分:0)

此代码将帮助您:

 <head>
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

// Reading csv data from file using get ou post or whateven protocol
$(document).ready(function() {
    $.ajax({
        type: "GET",
        url: "data.txt",
        dataType: "text",
        success: function(data) {
            var lines = processData(data);
            console.log(lines);
        }
    });
});

// Passing csv data direct from text string
csv = "heading1,heading2,heading3,heading4,heading5\nvalue1_1,value2_1,value3_1,value4_1,value5_1\nvalue1_2,value2_2,value3_2,value4_2,value5_2";
var lines = processData(data);
console.log(lines);


function processData(allText) {
    var allTextLines = allText.split(/\r\n|\n/);
    var headers = allTextLines[0].split(',');
    var lines = [];

    for (var i=1; i<allTextLines.length; i++) {
        var data = allTextLines[i].split(',');
        if (data.length == headers.length) {

            var tarr = [];
            for (var j=0; j<headers.length; j++) {
                tarr.push(data[j]);
            }
            lines.push(tarr);
        }
    }
    return lines;
}
 </head>