diff options
author | PJ Fanning <fanningpj@apache.org> | 2024-07-02 12:58:37 +0000 |
---|---|---|
committer | PJ Fanning <fanningpj@apache.org> | 2024-07-02 12:58:37 +0000 |
commit | 3d1375deee56ea921c35e86bcb8fe3e511fb80aa (patch) | |
tree | e1a5313baf0cc925f0e1fe272a0c495285c08ef1 /poi/src/main | |
parent | a78d594b7396666e231cc19abf49ee5fd197235f (diff) | |
download | poi-3d1375deee56ea921c35e86bcb8fe3e511fb80aa.tar.gz poi-3d1375deee56ea921c35e86bcb8fe3e511fb80aa.zip |
[bug-69154] XSSF: Shifting columns with merged regions generates an error about overlapping regions
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1918838 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'poi/src/main')
-rw-r--r-- | poi/src/main/java/org/apache/poi/ss/usermodel/helpers/ColumnShifter.java | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/poi/src/main/java/org/apache/poi/ss/usermodel/helpers/ColumnShifter.java b/poi/src/main/java/org/apache/poi/ss/usermodel/helpers/ColumnShifter.java index c6d97f3ff6..cbd6f784c9 100644 --- a/poi/src/main/java/org/apache/poi/ss/usermodel/helpers/ColumnShifter.java +++ b/poi/src/main/java/org/apache/poi/ss/usermodel/helpers/ColumnShifter.java @@ -105,16 +105,16 @@ public abstract class ColumnShifter extends BaseRowColShifter { // build a range of the columns that are overwritten, i.e. the target-area, but without // columns that are moved along final CellRangeAddress overwrite; - if(n > 0) { + if (n > 0) { // area is moved down => overwritten area is [endColumn + n - movedColumns, endColumn + n] final int firstCol = Math.max(endColumn + 1, endColumn + n - movedColumns); final int lastCol = endColumn + n; - overwrite = new CellRangeAddress(0, 0, firstCol, lastCol); + overwrite = new CellRangeAddress(merged.getFirstRow(), merged.getLastRow(), firstCol, lastCol); } else { // area is moved up => overwritten area is [startColumn + n, startColumn + n + movedColumns] final int firstCol = startColumn + n; final int lastCol = Math.min(startColumn - 1, startColumn + n + movedColumns); - overwrite = new CellRangeAddress(0, 0, firstCol, lastCol); + overwrite = new CellRangeAddress(merged.getFirstRow(), merged.getLastRow(), firstCol, lastCol); } // if the merged-region and the overwritten area intersect, we need to remove it @@ -122,12 +122,12 @@ public abstract class ColumnShifter extends BaseRowColShifter { } public void shiftColumns(int firstShiftColumnIndex, int lastShiftColumnIndex, int step){ - if(step > 0){ + if (step > 0) { for (Row row : sheet) if(row != null) row.shiftCellsRight(firstShiftColumnIndex, lastShiftColumnIndex, step); } - else if(step < 0){ + else if (step < 0) { for (Row row : sheet) if(row != null) row.shiftCellsLeft(firstShiftColumnIndex, lastShiftColumnIndex, -step); |