I am using nodejs to parse xlsx files with module "jsxlsx_async" and values will be stored in mongodb. My code:
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);
});
});
Using: Nodejs: v0.10.25, MongoDB: v2.2.6, OS: win8, RAM:6GB
My steps: 1.read uploaded xlsx file and saving those read values into an JS object. 2.Save the read values into mongodb collections by iterating the values on the JS object.
This works fine with smaller xlsx files but I wanted to parse xlsx files larger than 50MB.
My problem is where I am storing the entire xlsx values in a single JS object. Please provide some better ideas for a solution. Is there any better way to read xlsx by row and saving the values at once a row is read?
This exception can be solved by increasing the default memory allocated to our program to the required memory by using the following command. Parameters: SPACE_REQD: Pass the increased memory space (in Megabytes).
JavaScript heap out of memory - how to increase the max memory for Node with max_old_space_size. If you want to increase the max memory for Node you can use --max_old_space_size option. You should set this with NODE_OPTIONS environment variable.
To fix JavaScript heap out of memory error, you need to add the --max-old-space-size option when running your npm command. Alternatively, you can also set the memory limit for your entire environment using a configuration file.
By default, Node. js (up to 11. x ) uses a maximum heap size of 700MB and 1400MB on 32-bit and 64-bit platforms, respectively.
I had a similar problem before. I need to read a huge JSON object from a txt file, but the process was killed because it ran out of memory. Regarding this problem, my solution was to split this huge file into 2 files.
Regarding your problem, my suggestions are:
Try increasing memory limit of v8 engine. https://github.com/joyent/node/wiki/FAQ Example (8192 means 8GB):
node --max-old-space-size=8192 server.js
If #1 does not work, try reading xlsx file row by row with this lib: https://github.com/ffalt/xlsx-extract
If #1, #2 do not work, try https://github.com/extrabacon/xlrd-parser
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With