2017-10-10 121 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; 
    } 
});