From: Nick Burch Date: Fri, 31 Jul 2015 21:44:56 +0000 (+0000) Subject: More helpful exception on the wrong cell type X-Git-Tag: REL_3_13_FINAL~188 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=f150abced1f00e5ff0bfae951e72ba23b50e1000;p=poi.git More helpful exception on the wrong cell type git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1693656 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFFormulaEvaluator.java b/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFFormulaEvaluator.java index e3cba3caf7..6f2390b3ae 100644 --- a/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFFormulaEvaluator.java +++ b/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFFormulaEvaluator.java @@ -153,7 +153,7 @@ public class XSSFFormulaEvaluator implements FormulaEvaluator, WorkbookEvaluator * of the old formula. * Else if cell does not contain formula, this method leaves * the cell unchanged. - * Note that the same instance of HSSFCell is returned to + * Note that the same instance of XSSFCell is returned to * allow chained calls like: *
      * int evaluatedCellType = evaluator.evaluateInCell(cell).getCellType();
@@ -164,16 +164,16 @@ public class XSSFFormulaEvaluator implements FormulaEvaluator, WorkbookEvaluator
      * @param cell
      */
     public XSSFCell evaluateInCell(Cell cell) {
-        if (cell == null) {
-            return null;
-        }
-        XSSFCell result = (XSSFCell) cell;
+        doEvaluateInCell(cell);
+        return (XSSFCell)cell;
+    }
+    protected void doEvaluateInCell(Cell cell) {
+        if (cell == null) return;
         if (cell.getCellType() == XSSFCell.CELL_TYPE_FORMULA) {
             CellValue cv = evaluateFormulaCellValue(cell);
             setCellType(cell, cv); // cell will no longer be a formula cell
             setCellValue(cell, cv);
         }
-        return result;
     }
     private static void setCellType(Cell cell, CellValue cv) {
         int cellType = cv.getCellType();