sheetjs nodejs node make generar exceljs excel4node example con excel node.js mongodb

nodejs - NODE.JS: FATAL ERROR- JS Error de asignación: proceso fuera de la memoria, al analizar archivos grandes de Excel



node-excel-export (1)

Estoy usando nodejs para analizar archivos xlsx con el módulo "jsxlsx_async" y los valores se almacenarán en mongodb. Mi código:

xlsx(file, function(err,wb){ if (err){ //handling err } //get data array wb.getSheetDataByName(''Sheet1'', function(err,data){ if (err){ //handling err } //handling data console.log(data); }); });

Usando: Nodejs: v0.10.25, MongoDB: v2.2.6, OS: win8, RAM: 6GB

Mis pasos: 1. lea el archivo xlsx cargado y guarde esos valores leídos en un objeto JS. 2.Guarde los valores de lectura en colecciones mongodb al iterar los valores en el objeto JS.

Esto funciona bien con archivos xlsx más pequeños, pero quería analizar archivos xlsx de más de 50 MB.

Mi problema es donde estoy almacenando los valores xlsx completos en un solo objeto JS. Proporcione algunas mejores ideas para una solución. ¿Hay alguna forma mejor de leer xlsx por fila y guardar los valores a la vez que se lee una fila?


Tuve un problema similar antes. Necesito leer un gran objeto JSON de un archivo txt, pero el proceso fue cancelado porque se quedó sin memoria. Con respecto a este problema, mi solución fue dividir este enorme archivo en 2 archivos.

En cuanto a su problema, mis sugerencias son:

  1. Intente aumentar el límite de memoria del motor v8. https://github.com/joyent/node/wiki/FAQ Ejemplo (8192 significa 8GB):

    node --max-old-space-size=8192 server.js

  2. Si el # 1 no funciona, intente leer el archivo xlsx fila por fila con esta lib: https://github.com/ffalt/xlsx-extract

  3. Si # 1, # 2 no funcionan, intente https://github.com/extrabacon/xlrd-parser