This is an automated email from the ASF dual-hosted git repository.
fanningpj pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/poi.git
The following commit(s) were added to refs/heads/trunk by this push:
new b5f67fca04 bug-69727 decrease count when we remove merged regions
(#837)
b5f67fca04 is described below
commit b5f67fca043fddc4d9a5e928d322d92994795944
Author: PJ Fanning <[email protected]>
AuthorDate: Tue Jul 8 23:21:35 2025 +0100
bug-69727 decrease count when we remove merged regions (#837)
* bug-69727 decrease count when we remove merged regions
* extend test
* fix tests
---
poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFSheet.java | 2 ++
.../src/test/java/org/apache/poi/xssf/usermodel/TestXSSFSheet.java | 5 +++++
2 files changed, 7 insertions(+)
diff --git
a/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFSheet.java
b/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFSheet.java
index c851eda3ec..5c67853c10 100644
--- a/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFSheet.java
+++ b/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFSheet.java
@@ -2008,6 +2008,7 @@ public class XSSFSheet extends POIXMLDocumentPart
implements Sheet, OoxmlSheetEx
assert(0 <= index && index < size);
if (size > 1) {
ctMergeCells.removeMergeCell(index);
+ ctMergeCells.setCount(ctMergeCells.getCount() - 1);
} else {
worksheet.unsetMergeCells();
}
@@ -2043,6 +2044,7 @@ public class XSSFSheet extends POIXMLDocumentPart
implements Sheet, OoxmlSheetEx
} else {
CTMergeCell[] newMergeCellsArray = new
CTMergeCell[newMergeCells.size()];
ctMergeCells.setMergeCellArray(newMergeCells.toArray(newMergeCellsArray));
+ ctMergeCells.setCount(newMergeCells.size());
}
}
diff --git
a/poi-ooxml/src/test/java/org/apache/poi/xssf/usermodel/TestXSSFSheet.java
b/poi-ooxml/src/test/java/org/apache/poi/xssf/usermodel/TestXSSFSheet.java
index cca87501c4..1f5e62fb74 100644
--- a/poi-ooxml/src/test/java/org/apache/poi/xssf/usermodel/TestXSSFSheet.java
+++ b/poi-ooxml/src/test/java/org/apache/poi/xssf/usermodel/TestXSSFSheet.java
@@ -358,6 +358,7 @@ public final class TestXSSFSheet extends BaseTestXSheet {
sheet.removeMergedRegion(1);
assertEquals("E5:F6",
ctWorksheet.getMergeCells().getMergeCellArray(1).getRef());
assertEquals(2, sheet.getNumMergedRegions());
+ assertEquals(2, ctWorksheet.getMergeCells().getCount());
sheet.removeMergedRegion(1);
sheet.removeMergedRegion(0);
assertEquals(0, sheet.getNumMergedRegions());
@@ -367,11 +368,15 @@ public final class TestXSSFSheet extends BaseTestXSheet {
assertEquals(1, sheet.addMergedRegion(region_2));
assertEquals(2, sheet.addMergedRegion(region_3));
assertEquals(3, sheet.addMergedRegion(region_4));
+ assertEquals(4, sheet.getNumMergedRegions());
+ assertEquals(4, ctWorksheet.getMergeCells().getCount());
// test invalid indexes OOBE
Set<Integer> rmIdx = new HashSet<>(Arrays.asList(5, 6));
sheet.removeMergedRegions(rmIdx);
rmIdx = new HashSet<>(Arrays.asList(1, 3));
sheet.removeMergedRegions(rmIdx);
+ assertEquals(2, sheet.getNumMergedRegions());
+ assertEquals(2, ctWorksheet.getMergeCells().getCount());
assertEquals("A1:B2",
ctWorksheet.getMergeCells().getMergeCellArray(0).getRef());
assertEquals("E5:F6",
ctWorksheet.getMergeCells().getMergeCellArray(1).getRef());
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]