繁体   English   中英

我如何使用exceljs读取大型csv文件

[英]How do I read a large csv file using exceljs

我在项目中将exceljs与csv和excel文件一起使用。 最近,文件变得非常大,我无法正常读取它们。 以下代码适用于小文件,但是无法读取百万行

我意识到我需要使用流,但是我不明白它是如何工作的。 我想将其用于相同的情况下,以便能够阅读大量内容。 有人可以帮忙吗?

var Excel = require('exceljs');
var workbook = new Excel.Workbook();
readSecurityCSV(workbook);
var header = {}
var adSecurities = []



function readSecurityCSV(workbook){
workbook.csv.readFile('./csv/clientsOrders.csv')
.then(worksheet => {

   worksheet.eachRow({ includeEmpty: true }, function(row, rowNumber) {

     if(rowNumber == 1){
       header = {}
       row.eachCell({ includeEmpty: true }, function(cell, cellNumber) {
         header[cellNumber] = cell

       });
     }else{
       var currentSecurity = {}
       row.eachCell({ includeEmpty: true }, function(cell, cellNumber) {

        currentSecurity[header[cellNumber].value] = cell.value
       });

       currentSecurity.rowNumber = rowNumber

       adSecurities.push(currentSecurity)


     }

   });
   console.log(color.blue("adSecurity"), adSecurities[0]);

 })

}

您可以拆分csv文件,然后循环浏览。

拆分可以像这样完成:

var chunkSize = 1024 * 1024;
var fileSize = file.size;
var chunks = Math.ceil(file.size/chunkSize,chunkSize);
var chunk = 0;
while (chunk <= chunks) {
  var offset = chunk*chunkSize;
  console.log(file.slice(offset,offset + chunkSize));
  chunk++;
}

如果您想同时使用多个Promise,请检查此链接[ 1 ]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM