org.apache.poi.ss.formula.functions
Class IfFunc

java.lang.Object
  extended by org.apache.poi.ss.formula.functions.IfFunc
All Implemented Interfaces:
Function, Function2Arg, Function3Arg

public final class IfFunc
extends java.lang.Object

Implementation for the Excel function IF

Note that Excel is a bit picky about the arguments to this function, when serialised into Ptgs 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 Summary
IfFunc()
           
 
Method Summary
 ValueEval evaluate(int srcRowIndex, int srcColumnIndex, ValueEval arg0, ValueEval arg1)
          see Function.evaluate(ValueEval[], int, int)
 ValueEval evaluate(int srcRowIndex, int srcColumnIndex, ValueEval arg0, ValueEval arg1, ValueEval arg2)
          see Function.evaluate(ValueEval[], int, int)
 ValueEval evaluate(ValueEval[] args, int srcRowIndex, int srcColumnIndex)
           
static boolean evaluateFirstArg(ValueEval arg, int srcCellRow, int srcCellCol)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

IfFunc

public IfFunc()
Method Detail

evaluate

public ValueEval evaluate(int srcRowIndex,
                          int srcColumnIndex,
                          ValueEval arg0,
                          ValueEval arg1)
Description copied from interface: Function2Arg
see Function.evaluate(ValueEval[], int, int)


evaluate

public ValueEval evaluate(int srcRowIndex,
                          int srcColumnIndex,
                          ValueEval arg0,
                          ValueEval arg1,
                          ValueEval arg2)
Description copied from interface: Function3Arg
see Function.evaluate(ValueEval[], int, int)


evaluateFirstArg

public static boolean evaluateFirstArg(ValueEval arg,
                                       int srcCellRow,
                                       int srcCellCol)
                                throws EvaluationException
Throws:
EvaluationException

evaluate

public final ValueEval evaluate(ValueEval[] args,
                                int srcRowIndex,
                                int srcColumnIndex)
Specified by:
evaluate in interface Function
Parameters:
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 evaluation
srcColumnIndex - column index of the cell containing the formula under evaluation
Returns:
The evaluated result, possibly an ErrorEval, 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.