Unfortunately poi-ooxml has quite a good appetite for memory, under same conditions you will get OutOfMemory on less number of rows, I would say less in 2x. Increasing JVML heap will help till a certain limit, if you allocate 2 GB (the limit for 32-bit JVM), you will be able to generate 100K but not 1 million of rows.

The memory requirement depends of the row-cell grid density. Sparse rows 
require less memory then rows with every cell set.

If you need to generate such large worksheets, I would recommend direct 
streaming in XML.

The approach would be to create a template file using poi-ooxml, Setup sheets, 
number formats, cell styles, etc.
Then write a custom application that streams data in a text file. You don't need a deep knowledge of SpreadsheetML format for that, just follow the pattern in the template. The final step would be to inject this file in the template.

It's not very trivial but should be possible.

Regards,
Yegor

I have been tasked with generating Enterprise Reports and writing them to Excel 
Spreadsheets.  When using POI, the program crashes after about 30,000 records 
are processed.  Our system requires millions of records to be processed.  POI's 
limit is 65K rows and some change.  Excel 2007 is now capable of processing 
over a million rows of data.  Is there a tool available either open source or 
for purchase that can handle writing large quantities of data (over 1 million 
rows) to an Excel spreadsheet?  This data will in turn be used to populate 
pivot tables or be merged with an Excel Template.

John K. Borys
Projects & Financial Controls
Desk: 312.930.3134
[EMAIL PROTECTED]<mailto:[EMAIL PROTECTED]>

CME Group
A CME/Chicago Board of Trade Company
20 S. Wacker
Chicago, Illinois 60606
http://www.cmegroup.com/




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to