Skip to content
Closed
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Next Next commit
add null checker to sourceRow so it can be skipped if it's null
  • Loading branch information
xjlin0 committed Apr 23, 2020
commit e6ae7ec9222b91e0b3527f7085a8e56c04b95512
32 changes: 17 additions & 15 deletions src/java/org/apache/poi/ss/usermodel/RangeCopier.java
Original file line number Diff line number Diff line change
Expand Up @@ -85,22 +85,24 @@ private void copyRange(CellRangeAddress sourceRange, int deltaX, int deltaY, She

for(int rowNo = sourceRange.getFirstRow(); rowNo <= sourceRange.getLastRow(); rowNo++) {
Row sourceRow = sourceClone.getRow(rowNo); // copy from source copy, original source might be overridden in process!
for (int columnIndex = sourceRange.getFirstColumn(); columnIndex <= sourceRange.getLastColumn(); columnIndex++) {
Cell sourceCell = sourceRow.getCell(columnIndex);
if(sourceCell == null)
continue;
Row destRow = destSheet.getRow(rowNo + deltaY);
if(destRow == null)
destRow = destSheet.createRow(rowNo + deltaY);

Cell newCell = destRow.getCell(columnIndex + deltaX);
if(newCell == null) {
newCell = destRow.createCell(columnIndex + deltaX);
}
if (sourceRow != null) {
for (int columnIndex = sourceRange.getFirstColumn(); columnIndex <= sourceRange.getLastColumn(); columnIndex++) {
Cell sourceCell = sourceRow.getCell(columnIndex);
if (sourceCell == null)
continue;
Row destRow = destSheet.getRow(rowNo + deltaY);
if (destRow == null)
destRow = destSheet.createRow(rowNo + deltaY);

Cell newCell = destRow.getCell(columnIndex + deltaX);
if (newCell == null) {
newCell = destRow.createCell(columnIndex + deltaX);
}

cloneCellContent(sourceCell, newCell, null);
if(newCell.getCellType() == CellType.FORMULA)
adjustCellReferencesInsideFormula(newCell, destSheet, deltaX, deltaY);
cloneCellContent(sourceCell, newCell, null);
if (newCell.getCellType() == CellType.FORMULA)
adjustCellReferencesInsideFormula(newCell, destSheet, deltaX, deltaY);
}
}
}
}
Expand Down