2017-10-10 122 views
0

本地文件的读取CSV头我目前正在读使用下面的JS代码CSV头 -在angularjs

var r = new FileReader(); 
r.onload = function(e) { 
    var contents = e.target.result; 
    contents = contents.split(/\r\n|\n/); 
    var i = 0, 
     flag = false, 
     headers; 
    while (i < contents.length && flag == false) { 
     if (contents[i] != '') { 
      headers = contents[i] 
      flag = true; 
     } 
     i++; 
    } 
    vm.fileHeaders = headers.split(",").map(function(item) { return item.trim() && item.replace(/['"]+/g, ''); }); 
    return true; 
}; 
r.readAsText(item); 

此代码读取整个文件第一&然后返回头。但大型文件需要更多时间。 我想修改这个代码,它只会读取头文件&而不是整个数据,这样大文件也需要更少的时间。

回答

0

找到PapaParse作为一个快速解决方案!

Papa.parse(item, { 
    worker: true, 
    skipEmptyLines: true, 
    step: function(results, parser) { 
     parser.abort(); 
     vm.fileHeaders = results.data[0] || undefined; 
     results = null; 
     return vm.fileHeaders; 
    }, 
    complete: function(results){ 
     results = null; 
    } 
});