Bug 63657: Optimize onDocumentWrite() to not do the full re-assignment
if not necessary at all, also use getCArray() instead of getCList() as
access-operations are much quicker this way
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1865209 13f79535-47bb-0310-9956-ffa450edef68
Bug 63657: Rework the for bug #62130 to not use up twice as much memory when writing documents.
Unfortunately XMLBeans is very tricky to use here, mainly the fact that setCArray does not replace the internal objects, but copies the content into the currently held objects makes it rather hard to do this right.
Therefore we now try to keep the existing objects and only replace the content as required to
have a stable ordering of cells in the row-XML structure.
This also fixes removing cells from rows to avoid invalid situations and
correctly free CTCellImpl instances.
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1864977 13f79535-47bb-0310-9956-ffa450edef68
#61700 getForceFormulaRecalculation() returns wrong value
changed to use the proper OOXML attribute instead of a hack about calculation engine version ID. Reporter was right, the behavior was wrong in some cases, but it turns out the fix was a bit more. See issue for details.
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1856652 13f79535-47bb-0310-9956-ffa450edef68
#60724 - Partial implementation for SUBTOTAL() 'ignore hidden rows' variations
The function still doesn't deal with auto-filtering, but it now handles variations that should skip hidden rows.
Taught the evaluation framework to know about hidden rows similar to what was already there for skipping subtotals within subtotal ranges.
Added unit test cases.
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1855789 13f79535-47bb-0310-9956-ffa450edef68
Bug 62828: CellReference(Cell) now initializes sheet name.
Changed CellReference to CellAddress in XSSFHyperlink because it is what it should return.
Updated all relevant tests, added a test for CellReference(Cell).
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1850210 13f79535-47bb-0310-9956-ffa450edef68
Bug 62307: made Cell#getNumericCellValue() behavior consistent across HSSF/XSSF/SXSSF.\nAll three implementations throw ISE when trying to get numeric value from a boolean-valued cell, have it a formula set or not.
added cell type = formula check when looping through the shared formula range, to ignore any non-formula cells.
Also refactored a bit to enable passing in the evaluation context, as getCellFormula() uses it behind the scenes when evaluating a shared formula cell (has to shift the formula references based on the master cell). Review of these changes is welcome, as always.
Checked all other code referencing the "SHARED" enum, and didn't see anything else that dealt with formula cell values and thus would need to notice non-formula cells.
Added unit test based on the failing file from Bugzilla. Test failed until the fixed code was in place.
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1844295 13f79535-47bb-0310-9956-ffa450edef68