Hi,
Aspose gives the lightcells API and I was recommended to use that as I used the regular approach to render my files:
My approach:
Workbook wb= new Workbook();
File f = new File("\sample_input_file.txt");
Scanner s = new Scanner(f);
while (s.hasNextLine())
{
String line = s.nextLine();
String[] details = line.split("\t");
for(int y=0;y<details.length;y++)
{
c=CSVWB.getWorksheets().get(0).getCells().get(x,y);
c.setValue(details[y]);
}
x++;
}
CSVWB.save(\cell_get_set_sample_input_file.xlsx");
Sometimes for larger files this will take 10-15 mins to render.
I used LightCells (as Amjad recommended to me) as it was faster and render time of workbook came down to few secs. I was amazed at its speed.
BUT
File generated by my old method is smaller than the file generated by LightCells API.
It seems that LightCells taking an event driven approach - does not share strings - i.e. reuse the same string (if its there in another row or another sheet).
in the excel file structure:
my approach: xl -> sharedstrings.xml has all the unique distinct values being used in my excel
lightcells : xl->sharedstrings.xml has nothing.
I believe the performance for lightcells api is coming at cost to size of the file.cell_get_set_sample_input_file.zip (1.4 MB)
The attached file you can see - cell_get_set approach is 600KB less. This example might be small diff, but when I go to render my files, I see at times few MB difference - the lightcells being the bigger always.