diff --git a/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFRow.java b/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFRow.java index 0484773ecc..d0aa2ff867 100644 --- a/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFRow.java +++ b/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFRow.java @@ -34,6 +34,7 @@ import org.apache.poi.ss.usermodel.FormulaError; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.helpers.RowShifter; import org.apache.poi.ss.util.CellRangeAddress; +import org.apache.poi.ss.util.CellUtil; import org.apache.poi.util.Beta; import org.apache.poi.util.Internal; import org.apache.poi.xssf.model.StylesTable; @@ -650,8 +651,7 @@ public class XSSFRow implements Row, Comparable { // srcRow is blank. Overwrite cells with blank values, blank styles, etc per cell copy policy for (Cell destCell : this) { final XSSFCell srcCell = null; - // FIXME: remove type casting when copyCellFrom(Cell, CellCopyPolicy) is added to Cell interface - ((XSSFCell)destCell).copyCellFrom(srcCell, policy); + CellUtil.copyCell(srcCell, destCell, policy); } if (policy.isCopyMergedRegions()) { @@ -675,10 +675,9 @@ public class XSSFRow implements Row, Comparable { } else { - for (final Cell c : srcRow){ - final XSSFCell srcCell = (XSSFCell)c; - final XSSFCell destCell = createCell(srcCell.getColumnIndex()); - destCell.copyCellFrom(srcCell, policy); + for (final Cell c : srcRow) { + final XSSFCell destCell = createCell(c.getColumnIndex()); + destCell.copyCellFrom(c, policy); } final int sheetIndex = _sheet.getWorkbook().getSheetIndex(_sheet);