Package org.apache.poi.ss.formula.eval

Examples of org.apache.poi.ss.formula.eval.NumberEval


          // x is text that is not a number
          return false;
        }
        return _value == val.doubleValue();
      } else if((x instanceof NumberEval)) {
        NumberEval ne = (NumberEval) x;
        testValue = ne.getNumberValue();
            } else if((x instanceof BlankEval)) {
                switch (getCode()) {
                    case CmpOp.NE:
                        // Excel counts blank values in range as not equal to any value. See Bugzilla 51498
                        return true;
View Full Code Here


            Date startDate = DateUtil.getJavaDate(startDateAsNumber);
            Calendar calendar = Calendar.getInstance();
            calendar.setTime(startDate);
            calendar.add(Calendar.MONTH, offsetInMonthAsNumber);
            return new NumberEval(DateUtil.getExcelDate(calendar.getTime()));
        } catch (EvaluationException e) {
            return e.getErrorEval();
        }
    }
View Full Code Here

    String strText = OperandResolver.coerceValueToString(veText);
    Double result = convertTextToNumber(strText);
    if (result == null) {
      return ErrorEval.VALUE_INVALID;
    }
    return new NumberEval(result.doubleValue());
  }
View Full Code Here

                    " Only XSSFCells can be evaluated.");
        }

    ValueEval eval = _bookEvaluator.evaluate(new XSSFEvaluationCell((XSSFCell) cell));
    if (eval instanceof NumberEval) {
      NumberEval ne = (NumberEval) eval;
      return new CellValue(ne.getNumberValue());
    }
    if (eval instanceof BoolEval) {
      BoolEval be = (BoolEval) eval;
      return CellValue.valueOf(be.getBooleanValue());
    }
    if (eval instanceof StringEval) {
      StringEval ne = (StringEval) eval;
      return new CellValue(ne.getStringValue());
    }
    if (eval instanceof ErrorEval) {
      return CellValue.getError(((ErrorEval)eval).getErrorCode());
    }
    throw new RuntimeException("Unexpected eval class (" + eval.getClass().getName() + ")");
View Full Code Here

        XSSFWorkbook excel = XSSFTestDataSamples.openSampleWorkbook("56688_4.xlsx");
       
        Calendar calendar = Calendar.getInstance();
        calendar.add(Calendar.MONTH, 2);
        double excelDate = DateUtil.getExcelDate(calendar.getTime());
        NumberEval eval = new NumberEval(Math.floor(excelDate));
        checkValue(excel, eval.getStringValue() + ".0");
    }
View Full Code Here

  };

  private static void confirmSubtotal(int function, double expected) {
    ValueEval[] values = new ValueEval[TEST_VALUES0.length];
    for (int i = 0; i < TEST_VALUES0.length; i++) {
      values[i] = new NumberEval(TEST_VALUES0[i]);
    }

    AreaEval arg1 = EvalFactory.createAreaEval("C1:D5", values);
    ValueEval args[] = { new NumberEval(function), arg1 };

    ValueEval result = new Subtotal().evaluate(args, 0, 0);

    assertEquals(NumberEval.class, result.getClass());
    assertEquals(expected, ((NumberEval) result).getNumberValue(), 0.0);
View Full Code Here

    try {
      ValueEval lookupValue = OperandResolver.getSingleValue(arg0, srcRowIndex, srcColumnIndex);
      ValueVector lookupRange = evaluateLookupRange(arg1);
      int index = findIndexOfValue(lookupValue, lookupRange, matchExact, findLargestLessThanOrEqual);
      return new NumberEval(index + 1); // +1 to convert to 1-based
    } catch (EvaluationException e) {
      return e.getErrorEval();
    }
  }
View Full Code Here

      return e.getErrorEval();
    }
    if (Double.isNaN(result) || Double.isInfinite(result)) {
      return ErrorEval.NUM_ERROR;
    }
    return new NumberEval(result);
  }
View Full Code Here

        }
      }
      // only count pairs if both elements are numbers
      if (vx instanceof NumberEval && vy instanceof NumberEval) {
        accumlatedSome = true;
        NumberEval nx = (NumberEval) vx;
        NumberEval ny = (NumberEval) vy;
        sumx  += nx.getNumberValue();
              sumy  += ny.getNumberValue();
      } else {
        // all other combinations of value types are silently ignored
      }
    }
    double xbar = sumx / size;
        double ybar = sumy / size;
   
     // second pass: compute summary statistics
        double xxbar = 0.0, xybar = 0.0;
        for (int i = 0; i < size; i++) {
      ValueEval vx = x.getItem(i);
      ValueEval vy = y.getItem(i);
     
      if (vx instanceof ErrorEval) {
        if (firstXerr == null) {
          firstXerr = (ErrorEval) vx;
          continue;
        }
      }
      if (vy instanceof ErrorEval) {
        if (firstYerr == null) {
          firstYerr = (ErrorEval) vy;
          continue;
        }
      }
     
      // only count pairs if both elements are numbers
      if (vx instanceof NumberEval && vy instanceof NumberEval) {
        NumberEval nx = (NumberEval) vx;
        NumberEval ny = (NumberEval) vy;
              xxbar += (nx.getNumberValue() - xbar) * (nx.getNumberValue() - xbar);
              xybar += (nx.getNumberValue() - xbar) * (ny.getNumberValue() - ybar);
      } else {
        // all other combinations of value types are silently ignored
      }
        }
        double beta1 = xybar / xxbar;
View Full Code Here

    protected NumberLookupComparer(NumberEval ne) {
      super(ne);
      _value = ne.getNumberValue();
    }
    protected CompareResult compareSameType(ValueEval other) {
      NumberEval ne = (NumberEval) other;
      return CompareResult.valueOf(Double.compare(_value, ne.getNumberValue()));
    }
View Full Code Here

TOP

Related Classes of org.apache.poi.ss.formula.eval.NumberEval

Copyright © 2018 www.massapicom. 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.