Hi, getCellAt is a very high level function, it resolves all the information about the cells. For bulk processing, use low level APIs to manipulate the DOM.
Regards, Guillaume Le dim. 19 janv. 2020 à 12:49, igNights77 <jvfhgc...@gmail.com> a écrit : > > Hello. > > > I have been using jOpenDocument for some time now, and it behaves in a way > that I do not understand. > > > I have a *SpreadSheet* with only one non-empty *Sheet* containing 57495 > rows and 476 columns. > > Around 80% of the cells are blank, and with no style. > > The rest have a small *String* of 1 to 15 char max. > > I have defined 3 custom styles which are used on some of the cells. > > This *SpreadSheet* takes up 2.2MegaBytes on the disk. > > > I perform the following code on it: > > > > > *File* file = new *File*("fileName.ods"); > > > *Sheet* sheet = *SpreadSheet*.*createFromFile*(file).*getSheet*(0); > > *int* rowCount = sheet.*getRowCount*(); > > *int* columnCount = sheet.*getColumnCount*(); > > for (*int* y = 0; y < rowCount; y++) > { > > *System*.out.*println*(y); > > for (*int* x = 0; x < columnCount; x++) > { > > > sheet.*getCellAt*(x, y); > > > } > > } > > > > > Now from what I would expect, this code shouldn't really be doing anything > at all. > > > However, it keeps creating a bunch of *MutableCell* which are never > unloaded. > > > After about 2 minutes, the heap is taking up 4.8GigaBytes of the > 6GigaBytes I have allocated it, 4.3GigaBytes of which is actually used. > > The program has created about 23 million *MutableCell*, and about as much > *Element*, *Attribute[]*, *AttributeList* and *ContentList*. > > It has now reached row 48000. > > > From then on it slows down significantly, progressing at about 1 row every > 5 minutes. GC and CPU usage are both at about 0%. > > > After about an hour it produces an OutOfMemoryError : Java heap space, > even though it has still not reached the 6GigaByte limit. > > > Could someone please explain this behavior? It seems that any call I make > to the *getCellAt*() method makes the memory consumption explode. > > Because of this, I cannot use methods like *getCellAt*().*setStyleName*() > or *getCellAt*().*merge*() in big files, which is a real problem for me. > > > There is something I don't understand about the *getCellAt*() method. How > would I go about setting the style of a cell, or merging cells in a big > file? > > > Thank you for taking the time to read me. > > > -- > > --- > You received this message because you are subscribed to the Google Groups > "jOpenDocument" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to jopendocument+unsubscr...@googlegroups.com. > To view this discussion on the web visit > https://groups.google.com/d/msgid/jopendocument/a7430116-12fd-4907-a2b4-b5c6fa8d4766%40googlegroups.com > <https://groups.google.com/d/msgid/jopendocument/a7430116-12fd-4907-a2b4-b5c6fa8d4766%40googlegroups.com?utm_medium=email&utm_source=footer> > . > -- --- You received this message because you are subscribed to the Google Groups "jOpenDocument" group. To unsubscribe from this group and stop receiving emails from it, send an email to jopendocument+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/jopendocument/CALhNRbuC-HAeM2yxsCsUDxF%3DiJC1DjUeaCs1bc-D%2BQwS_KJMaQ%40mail.gmail.com.