Examples of HSSFFormulaEvaluator


Examples of org.apache.poi.hssf.usermodel.HSSFFormulaEvaluator

     }
  }

  private int processTestSheet(HSSFWorkbook workbook, int sheetIndex, String sheetName) {
    HSSFSheet sheet = workbook.getSheetAt(sheetIndex);
    HSSFFormulaEvaluator evaluator = new HSSFFormulaEvaluator(sheet, workbook);
    int maxRows = sheet.getLastRowNum()+1;
    int result = Result.NO_EVALUATIONS_FOUND; // so far
   
    String currentGroupComment = null;
    for(int rowIndex=SS.START_TEST_CASES_ROW_INDEX; rowIndex<maxRows; rowIndex++) {
      HSSFRow r = sheet.getRow(rowIndex);
      String newMarkerValue = getMarkerColumnValue(r);
      if(r == null) {
        continue;
      }
      if(SS.TEST_CASES_END_MARKER.equalsIgnoreCase(newMarkerValue)) {
        // normal exit point
        return result;
      }
      if(SS.SKIP_CURRENT_TEST_CASE_MARKER.equalsIgnoreCase(newMarkerValue)) {
        // currently disabled test case row
        continue;
      }
      if(newMarkerValue != null) {
        currentGroupComment = newMarkerValue;
      }
      HSSFCell c = r.getCell(SS.COLUMN_INDEX_EVALUATION);
      if (c == null || c.getCellType() != HSSFCell.CELL_TYPE_FORMULA) {
        continue;
      }
      evaluator.setCurrentRow(r);
      CellValue actualValue = evaluator.evaluate(c);
      HSSFCell expectedValueCell = r.getCell(SS.COLUMN_INDEX_EXPECTED_RESULT);
      String rowComment = getRowCommentColumnValue(r);
     
      String msgPrefix = formatTestCaseDetails(sheetName, r.getRowNum(), c, currentGroupComment, rowComment);
      try {
View Full Code Here

Examples of org.apache.poi.hssf.usermodel.HSSFFormulaEvaluator

    // put some values in the cells to make the evaluation more interesting
    sheet.createRow(32768).createCell((short)0).setCellValue(31);
    sheet.createRow(32769).createCell((short)0).setCellValue(11);
   
    HSSFFormulaEvaluator fe = new HSSFFormulaEvaluator(sheet, wb);
    fe.setCurrentRow(row);
    CellValue result;
    try {
      result = fe.evaluate(cell);
    } catch (FormulaParseException e) {
      if(e.getMessage().equals("Found reference to named range \"A\", but that named range wasn't defined!")) {
        fail("Identifed bug 44539");
      }
      throw new RuntimeException(e);
View Full Code Here

Examples of org.apache.poi.hssf.usermodel.HSSFFormulaEvaluator

       
        cell.setCellFormula("myFunc()");
        String actualFormula=cell.getCellFormula();
        assertEquals("myFunc()", actualFormula);
   
    HSSFFormulaEvaluator fe = new HSSFFormulaEvaluator(sheet, wb);
    fe.setCurrentRow(row);
    CellValue evalResult = fe.evaluate(cell);
   
    // Check the return value from ExternalFunction.evaluate()
    // TODO - make this test assert something more interesting as soon as ExternalFunction works a bit better
    assertEquals(HSSFCell.CELL_TYPE_ERROR, evalResult.getCellType());
    assertEquals(ErrorEval.FUNCTION_NOT_IMPLEMENTED.getErrorCode(), evalResult.getErrorValue());
View Full Code Here

Examples of org.apache.poi.hssf.usermodel.HSSFFormulaEvaluator

  /**
   * Translates StackOverflowError into AssertionFailedError
   */
  private static CellValue evaluateWithCycles(HSSFWorkbook wb, HSSFSheet sheet, HSSFRow row, HSSFCell testCell)
      throws AssertionFailedError {
    HSSFFormulaEvaluator evaluator = new HSSFFormulaEvaluator(sheet, wb);
    evaluator.setCurrentRow(row);
    try {
      return evaluator.evaluate(testCell);
    } catch (StackOverflowError e) {
      throw new AssertionFailedError( "circular reference caused stack overflow error");
    }
  }
View Full Code Here

Examples of org.apache.poi.hssf.usermodel.HSSFFormulaEvaluator

   
    HSSFRow row = sheet.createRow(0);
    HSSFCell testCell = row.createCell((short)0);
    testCell.setCellFormula("A1");

    HSSFFormulaEvaluator evaluator = new HSSFFormulaEvaluator(sheet, wb);
    evaluator.setCurrentRow(row);
    CellValue cellValue = evaluateWithCycles(wb, sheet, row, testCell);
   
    confirmCycleErrorCode(cellValue);
  }
View Full Code Here

Examples of org.apache.poi.hssf.usermodel.HSSFFormulaEvaluator

    row.createCell((short)1).setCellFormula("C1");
    row.createCell((short)2).setCellFormula("D1");
    HSSFCell testCell = row.createCell((short)3);
    testCell.setCellFormula("A1");

    HSSFFormulaEvaluator evaluator = new HSSFFormulaEvaluator(sheet, wb);
    evaluator.setCurrentRow(row);
    CellValue cellValue = evaluateWithCycles(wb, sheet, row, testCell);
   
    confirmCycleErrorCode(cellValue);
  }
View Full Code Here

Examples of org.apache.poi.hssf.usermodel.HSSFFormulaEvaluator

    HSSFRow row = sheet.createRow(0);
    HSSFCell cell = row.createCell((short)0);
    cell.setCellFormula("B1%");
    row.createCell((short)1).setCellValue(50.0);
   
    HSSFFormulaEvaluator fe = new HSSFFormulaEvaluator(sheet, wb);
    fe.setCurrentRow(row);
    CellValue cv;
    try {
      cv = fe.evaluate(cell);
    } catch (RuntimeException e) {
      if(e.getCause() instanceof NullPointerException) {
        throw new AssertionFailedError("Identified bug 44608");
      }
      // else some other unexpected error
View Full Code Here

Examples of org.apache.poi.hssf.usermodel.HSSFFormulaEvaluator

    // this definitely would have failed due to 27349
    assertEquals("VLOOKUP(1,'DATA TABLE'!$A$8:'DATA TABLE'!$B$10,2)", cell
        .getCellFormula());

    // We might as well evaluate the formula
    HSSFFormulaEvaluator fe = new HSSFFormulaEvaluator(sheet, wb);
    fe.setCurrentRow(row);
    CellValue cv = fe.evaluate(cell);

    assertEquals(HSSFCell.CELL_TYPE_NUMERIC, cv.getCellType());
    assertEquals(3.0, cv.getNumberValue(), 0.0);
  }
View Full Code Here

Examples of org.apache.poi.hssf.usermodel.HSSFFormulaEvaluator

        throw new RuntimeException(e);
      }
    }
   
    // use POI's evaluator as an extra sanity check
    HSSFFormulaEvaluator fe = new HSSFFormulaEvaluator(sheet, wb);
    fe.setCurrentRow(row);
    CellValue cv;
    cv = fe.evaluate(cell);
    assertEquals(HSSFCell.CELL_TYPE_NUMERIC, cv.getCellType());
    assertEquals(1.0, cv.getNumberValue(), 0.0);
   
    cv = fe.evaluate(row.getCell(1));
    assertEquals(HSSFCell.CELL_TYPE_BOOLEAN, cv.getCellType());
    assertEquals(true, cv.getBooleanValue());
  }
View Full Code Here

Examples of org.apache.poi.hssf.usermodel.HSSFFormulaEvaluator

    addCell(sheet1, 67, 1, 9.0); // B68
    addCell(sheet1, 68, 1, 10.0); // B69

    double expectedResult = (4.0 * 8.0 + 5.0 * 9.0) / 10.0;

    HSSFFormulaEvaluator fe = new HSSFFormulaEvaluator(sheet1, wb);
    fe.setCurrentRow(row);
    CellValue cv = fe.evaluate(cell);

    assertEquals(HSSFCell.CELL_TYPE_NUMERIC, cv.getCellType());
    assertEquals(expectedResult, cv.getNumberValue(), 0.0);
  }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.