Thursday 23 January 2020

Turning txt to xlsx, out of memory ?

Hi. I'm trying to turn 40 .txt files to .xlsx. I don't want to do it manually, and i haven't found any library to do so. Here's my code.var fs=require('fs'); var Excel=require('exceljs'); var reader = require ("buffered-reader"); var FOLDER ="./../Data/ING5"; fs.readdir(FOLDER,function(error,folders){ folders.forEach(folder=>{ if(!folder.includes(".txt")){ fs.readdir(FOLDER+folder,function(er,list_files){ var has_excel=false; var clean=""; list_files.forEach(file=>{ if(file.includes(".xlsx")) has_excel=true; if(file.includes("clean.txt")) clean=FOLDER+folder+"/"+file; }) if(!has_excel){ console.log(folder); var workbook = new Excel.Workbook(); var sheet = workbook.addWorksheet('sheet 1'); var r=1; new reader.DataReader (clean, { encoding: "utf8" }) .on("error", function (error){console.log (error); }).on ("line", function (line, nextByteOffset){ var data=line.split(","); var row=sheet.getRow(r); line.split(",").forEach((d,i)=>{ row.getCell(i+1).value=d; }) r++; }).on ("end", function (){ var newFile= clean.replace("txt","xlsx"); workbook.xlsx.writeFile(newFile).then(function(){ console.log(newFile + " written"); }); }).read(); } }) } }) }) However i run out of java memory. The .txt files are 10Mb. I tried to increase it with --max-old-space-size, but it's still not enough. Any solutions ?

Submitted January 23, 2020 at 12:02PM by FireZura

No comments:

Post a Comment