因此,我正在尝试对正在使用的应用程序进行一些客户端验证,并且希望能够检查用户上传的CSV中的列数。 CSV可能非常大(最多3万行),所以我担心当前的方法(读取整个文件)不是最好的方法。
这就是我现在所拥有的。
// Function to validate the File Upload
$(document).ready(function() {
$("#csv").change(function () {
console.log("Read CSV Function Triggered");
let theFile = document.getElementById("csv").files[0];
let reader = new FileReader();
reader.addEventListener('load', readFile);
reader.readAsText(theFile);
function readFile(event) {
let csvText = event.target.result;
let firstLine = csvText.split('\n').shift(); // First Line
$("#result").html(firstLine);
}
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="file" id="csv" />
<br>
<span id="result">0</span>
在该示例中,我仅使第一行显示在页面上,但是在应用程序中,我有一个解析器库,该示例库无法包含在该库中,该库将第一行转换为数组,然后得到长度数组。因此,就像我之前说的那样,此方法有效,但是我担心,当上传大型CSV时,它可能会影响浏览器性能。
有什么建议吗?