Class IfFunc
- java.lang.Object
-
- org.apache.poi.ss.formula.functions.IfFunc
-
- All Implemented Interfaces:
ArrayFunction
,Function
,Function2Arg
,Function3Arg
public final class IfFunc extends java.lang.Object implements ArrayFunction
Implementation for the Excel function IFNote 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 ofRefPtg
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 Summary
Constructors Constructor Description IfFunc()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method 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)
-
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.apache.poi.ss.formula.functions.ArrayFunction
evaluateOneArrayArg, evaluateTwoArrayArgs
-
-
-
-
Method Detail
-
evaluate
public ValueEval evaluate(int srcRowIndex, int srcColumnIndex, ValueEval arg0, ValueEval arg1)
Description copied from interface:Function2Arg
- Specified by:
evaluate
in interfaceFunction2Arg
-
evaluate
public ValueEval evaluate(int srcRowIndex, int srcColumnIndex, ValueEval arg0, ValueEval arg1, ValueEval arg2)
Description copied from interface:Function3Arg
- Specified by:
evaluate
in interfaceFunction3Arg
-
evaluateFirstArg
public static boolean evaluateFirstArg(ValueEval arg, int srcCellRow, int srcCellCol) throws EvaluationException
- Throws:
EvaluationException
-
evaluateArray
public ValueEval evaluateArray(ValueEval[] args, int srcRowIndex, int srcColumnIndex)
- Specified by:
evaluateArray
in interfaceArrayFunction
- Parameters:
args
- the evaluated function arguments. Empty values are represented withBlankEval
orMissingArgEval
, nevernull
.srcRowIndex
- row index of the cell containing the formula under evaluationsrcColumnIndex
- column index of the cell containing the formula under evaluation- Returns:
- The evaluated result, possibly an
ErrorEval
, nevernull
. Note - Excel uses the error code #NUM! instead of IEEE NaN, so when numeric functions evaluate toDouble.NaN
be sure to translate the result toErrorEval.NUM_ERROR
.
-
evaluate
public final ValueEval evaluate(ValueEval[] args, int srcRowIndex, int srcColumnIndex)
- Specified by:
evaluate
in interfaceFunction
- Parameters:
args
- the evaluated function arguments. Empty values are represented withBlankEval
orMissingArgEval
, nevernull
.srcRowIndex
- row index of the cell containing the formula under evaluationsrcColumnIndex
- column index of the cell containing the formula under evaluation- Returns:
- The evaluated result, possibly an
ErrorEval
, nevernull
. Note - Excel uses the error code #NUM! instead of IEEE NaN, so when numeric functions evaluate toDouble.NaN
be sure to translate the result toErrorEval.NUM_ERROR
.
-
-