如何读取文件.csv非常大的FileReader API javascript, html/jquery只有



我试图读取文件.csv超过40 MB(有更多的20,000行),将其视为html中的表。我正在设计的系统将在纯HTML + JQuery只。我的工作表.csv格式是:

=======================================================================
| rank ||  place           || population ||    lat    ||      lon     |
=======================================================================
|  1   || New York city    ||  8175133   || 40.71455  ||  -74.007124  |
-----------------------------------------------------------------------
|  2   || Los Angeles city ||  3792621   || 34.05349  ||  -118.245323 |
-----------------------------------------------------------------------
..........................Thousands of lines..........................

我有一个文本框过滤器,它使我只显示在字段中输入的具有相同数字的行。我有一个文本框过滤器,它使我只显示在字段中输入相同数字的行。然后上传文件就会破坏浏览器。:(遵循我的代码:

var fileInput = document.getElementById('fileInput');
var fileDisplayArea = document.getElementById('fileDisplayArea');
        fileInput.addEventListener('change', function(e) {
            var file = fileInput.files[0];
                var reader = new FileReader();
                reader.onload = function(e) {
                    //Convert .csv to table html
                    var data = reader.result; 
                    var rank = $("#rank").val(); 
                    if(rank == ""){
                        alert("digit rank number");
                        fileInput.value = "";
                     }
                     else{

                    data = data.replace(/s/, " #"); 
                    data = data.replace(/([0-9]s)/g, "$1#"); 
                    var lines = data.split("#"), 
                        output = [],
                        i;
                        for (i = 0; i < lines.length; i++)
                        output.push("<tr><td>" + lines[i].slice(0,-1).split(",").join("</td><td>") + "</td></tr>");
                        output = "<table>" + output.join("") + "</table>";
var valuefinal = $(output).find('tr').filter(function(){ 
    return $(this).children('td').eq(0).text() == rank;
});
 $('#fileDisplayArea').append(valuefinal);
                     }
                }
                reader.readAsBinaryString(file);    

        });

是否有可能做一些事情,我优化我的代码,不让我的浏览器和打破我的文件被读取?我试着把文件拆开,然后封起来。(BLOB)但是这样他也一直让我的浏览器崩溃。(

(请原谅,如果我的问题不清楚和启发你,我的英语很差。)DEMO CODE JSFiddle

当我在我的研究中发现这个线程在解析器中解析一个非常大的CSV文件时,我想添加我的最终解决方案是使用Papa parse:

http://papaparse.com/

最新更新