public final class IfFunc extends java.lang.Object implements ArrayFunction
Note that Excel is a bit picky about the arguments to this function,
when serialised into Ptg
s in a HSSF file. While most cases are
pretty chilled about the R vs V state of RefPtg
arguments,
for IF special care is needed to avoid Excel showing #VALUE.
See bug numbers #55324 and #55747 for the full details on this.
TODO Fix this...
Constructor and Description |
---|
IfFunc() |
Modifier and Type | Method and Description |
---|---|
ValueEval |
evaluate(int srcRowIndex,
int srcColumnIndex,
ValueEval arg0,
ValueEval arg1)
|
ValueEval |
evaluate(int srcRowIndex,
int srcColumnIndex,
ValueEval arg0,
ValueEval arg1,
ValueEval arg2)
|
ValueEval |
evaluate(ValueEval[] args,
int srcRowIndex,
int srcColumnIndex) |
ValueEval |
evaluateArray(ValueEval[] args,
int srcRowIndex,
int srcColumnIndex) |
static boolean |
evaluateFirstArg(ValueEval arg,
int srcCellRow,
int srcCellCol) |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
_evaluateOneArrayArg, _evaluateTwoArrayArgs, evaluateOneArrayArg, evaluateTwoArrayArgs
public ValueEval evaluate(int srcRowIndex, int srcColumnIndex, ValueEval arg0, ValueEval arg1)
Function2Arg
evaluate
in interface Function2Arg
public ValueEval evaluate(int srcRowIndex, int srcColumnIndex, ValueEval arg0, ValueEval arg1, ValueEval arg2)
Function3Arg
evaluate
in interface Function3Arg
public static boolean evaluateFirstArg(ValueEval arg, int srcCellRow, int srcCellCol) throws EvaluationException
EvaluationException
public ValueEval evaluateArray(ValueEval[] args, int srcRowIndex, int srcColumnIndex)
evaluateArray
in interface ArrayFunction
args
- the evaluated function arguments. Empty values are represented with
BlankEval
or MissingArgEval
, never null
.srcRowIndex
- row index of the cell containing the formula under evaluationsrcColumnIndex
- column index of the cell containing the formula under evaluationErrorEval
, never null
.
Note - Excel uses the error code #NUM! instead of IEEE NaN, so when
numeric functions evaluate to Double.NaN
be sure to translate the result to ErrorEval.NUM_ERROR
.public final ValueEval evaluate(ValueEval[] args, int srcRowIndex, int srcColumnIndex)
evaluate
in interface Function
args
- the evaluated function arguments. Empty values are represented with
BlankEval
or MissingArgEval
, never null
.srcRowIndex
- row index of the cell containing the formula under evaluationsrcColumnIndex
- column index of the cell containing the formula under evaluationErrorEval
, never null
.
Note - Excel uses the error code #NUM! instead of IEEE NaN, so when
numeric functions evaluate to Double.NaN
be sure to translate the result to ErrorEval.NUM_ERROR
.Copyright 2022 The Apache Software Foundation or its licensors, as applicable.