Hi,
We are taking a look as Aspose.Cells and have a couple of questions. Sales directed me to post these here.
Memory
We
need to be able to output very large files - potentially 100’s of
thousands of rows X 100’s of columns (.xslx only). I’ve found some
forum posts on your site showing code that gets a SaveOptions object,
and then sets a LightCellsDataProvider. But looking at the JavaDoc, I
cannot find that interface. Can you point me towards demo code that
shows Aspose.Cells’ efficient use of memory when writing a large Excel
file?
My recent test with 7.0.1 shows that I use importObjectArray to create a little over 1M rows (with 12 columns) before I get a OOM exception, topping out at about 800MB. Ideally, I’d like to know if there’s a streaming interface with a negligible effect on runtime memory.
Templates
We
want to produce Excel template files, and then drop data from the
application onto a data sheet in that template, and
have presentation sheets reference that data for charts and so on. Can
Aspose.Cells write into a data sheet this way? Will it preserve
formatting and other settings (dynamic named ranges, etc)?
PDFs, CSVs
I’m glad to see that I can also produce PDF and CSV files as well…what’s the memory picture for these options?
Thanks in advance!
- David
Hi,
Since the original post, I was able to create an example with 90,000 rows. When saving to PDF, memory consumption grows to 880MB (64-bit Windows 7), and flat-lines. It appears to be fighting for memory, and doesn’t write anything to the PDF file.
Please advise with a technique for generating large PDF files.
With the LightCells API, what can expect for memory consumption? We try to stay within 768MB, including the GUI and runtime data for the application. So I need to find a way to fit Excel and PDF output into a reasonable amount of memory, maybe 400MB, regardless of data output size.
If I were to produce a CSV and import that into a Worksheet, would you expect that to perform better?
My test to produce a PDF file from 90,000 rows fails, consuming all memory (up to 900+MB). Attached you’ll find source code and a template file for this test.
- David
<![endif]–>
Hi,
Thanks for the sample project.
The LightCells API is mainly for saving cells data directly to resultant Excel file without building the complete cells model in the memory. Currently (using latest fix V7.0.1.1 (attached)) we only support LightCells API for saving XLSX files. For saving PDF, one possible solution may be that we save some intermediate data into temporary file system before creating the final Pdf file. But we need to make further investigation for this feature and we are afraid we cannot finish it very soon.
Thank you.
Hi Amjad,
Thanks for the attachment. I’ll give it a try.
I am less concerned about a PDF containing many data rows…that is not a real world case. What we are going to want to export as PDF is going to be the presentation sheets where we have charts of rolled up summary data over the many rows. So I think we are likely in good shape there. My tests yesterday proved that to be the case.
- David
Since I need to be able to call calculateFormulas() (since I need to output PDF’s of several sheets), the LightCells API is not going to work for me.
Hi,
Please let us know your results with the normal Apis (not lightcells). Please use the latest version:
Aspose.Cells for Java v7.0.1.1
In case your are getting performance problem, then please create a sample project and post here, we will try to optimize it.