Hi, We are using POI SXSSF for writing excel files. We faced heap memory usage issues with large excels containing large amounts of text data.
Currently, SXSSF stores the shared strings table completely in memory, and if shared strings table is not used, the xlsx file is not compatible with some clients (like iPad) ( https://issues.apache.org/bugzilla/show_bug.cgi?id=53130). We tried using MapDB to store shared strings table, which flushes entries to disk if there are a large number of entries. It's working quite well, and successfully writes large files where POI currently throws OOM error. PFA the modified files along with some test cases. The code is very crude right now. What is a good option to use this kind of code by extending existing classes, instead of patching original code? Ideally, we would like to extend SharedStringTable and plug it in. Of course it would be awesome if something like this becomes available in POI directly. Not sure if you'll be OK to depend on MapDB, or would like your own code. -- Cheers, Sumedh http://www.linkedin.com/in/sumedhinamdar Ph: +91 - 95610 99125
--------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
