]> source.dussan.org Git - poi.git/commitdiff
[bug-66215] try to improve logic for overlapping tables
authorPJ Fanning <fanningpj@apache.org>
Wed, 17 Aug 2022 01:15:12 +0000 (01:15 +0000)
committerPJ Fanning <fanningpj@apache.org>
Wed, 17 Aug 2022 01:15:12 +0000 (01:15 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1903471 13f79535-47bb-0310-9956-ffa450edef68

poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFSheet.java

index 0dee5466aed9557e69cfac36c8a89caada1fa737..3fdd8c1b9ab3bbd3059467638c060afcda19d69c 100644 (file)
@@ -3044,7 +3044,10 @@ public class XSSFSheet extends POIXMLDocumentPart implements Sheet, OoxmlSheetEx
     public void shiftRows(int startRow, int endRow, final int n, boolean copyRowHeight, boolean resetOriginalRowHeight) {
         List<XSSFTable> overlappingTables = new ArrayList<>();
         for (XSSFTable table : getTables()) {
-            if (table.getStartRowIndex() <= endRow || table.getEndRowIndex() >= startRow) {
+            if ((table.getStartRowIndex() < startRow && table.getEndRowIndex() < startRow)
+                    || (table.getStartRowIndex() > endRow && table.getEndRowIndex() > endRow))  {
+                // not overlapping
+            } else {
                 overlappingTables.add(table);
             }
         }
@@ -3082,7 +3085,10 @@ public class XSSFSheet extends POIXMLDocumentPart implements Sheet, OoxmlSheetEx
     public void shiftColumns(int startColumn, int endColumn, final int n) {
         List<XSSFTable> overlappingTables = new ArrayList<>();
         for (XSSFTable table : getTables()) {
-            if (table.getStartColIndex() <= endColumn || table.getEndRowIndex() >= startColumn) {
+            if ((table.getStartColIndex() < startColumn && table.getEndColIndex() < startColumn)
+                    || (table.getStartColIndex() > endColumn && table.getEndColIndex() > endColumn))  {
+                // not overlapping
+            } else {
                 overlappingTables.add(table);
             }
         }