gpt4 book ai didi

javascript - 如何使用 FileReader API javascript,仅 html/jquery 读取非常大的文件 .csv

转载 作者:行者123 更新时间:2023-11-30 05:35:06 25 4
gpt4 key购买 nike

我正在尝试读取超过 40 MB(超过 20.000 行)的文件 .csv,将其视为 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);


});

是否可以做一些事情来优化我的代码,而不是让我的浏览器破坏我的文件以供读取?我试着把文件分成几 block ,然后密封起来。 (BLOB)但是这样他也一直让我的浏览器崩溃。 :(

(如果我向您提出的问题不清楚和启发,请原谅,我的英语不好。)<强> DEMO CODE JSFiddle

最佳答案

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

http://papaparse.com/

关于javascript - 如何使用 FileReader API javascript,仅 html/jquery 读取非常大的文件 .csv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24356591/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com