Package org.apache.poi.ss.formula
Class OperationEvaluationContext
java.lang.Object
org.apache.poi.ss.formula.OperationEvaluationContext
Contains all the contextual information required to evaluate an operation
within a formula
For POI internal use only. Not final so that an evaluator can subclass it to customise
how references are resolved before passing it to
WorkbookEvaluator.evaluateFormula(OperationEvaluationContext, Ptg[]).
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionOperationEvaluationContext(WorkbookEvaluator bookEvaluator, EvaluationWorkbook workbook, int sheetIndex, int srcRowNum, int srcColNum) Creates a context for evaluating formula tokens at the given position, using the evaluation tracker of the givenWorkbookEvaluator.OperationEvaluationContext(WorkbookEvaluator bookEvaluator, EvaluationWorkbook workbook, int sheetIndex, int srcRowNum, int srcColNum, org.apache.poi.ss.formula.EvaluationTracker tracker) OperationEvaluationContext(WorkbookEvaluator bookEvaluator, EvaluationWorkbook workbook, int sheetIndex, int srcRowNum, int srcColNum, org.apache.poi.ss.formula.EvaluationTracker tracker, boolean isSingleValue) -
Method Summary
Modifier and TypeMethodDescriptionstatic CellReferenceapplyR1C1Reference(CellReference anchorReference, String relativeReference) findUserDefinedFunction(String functionName) getArea3DEval(Area3DPtg aptg) getArea3DEval(Area3DPxg aptg) getAreaEval(int firstRowIndex, int firstColumnIndex, int lastRowIndex, int lastColumnIndex) getAreaValueEval(int firstRowIndex, int firstColumnIndex, int lastRowIndex, int lastColumnIndex, Object[][] tokens) intgetDynamicReference(String workbookName, String sheetName, String refStrPart1, String refStrPart2, boolean isA1Style) Resolves a cell or area reference dynamically.getNameXEval(NameXPtg nameXPtg) getNameXEval(NameXPxg nameXPxg) getRef3DEval(Ref3DPtg rptg) getRef3DEval(Ref3DPxg rptg) getRefEval(int rowIndex, int columnIndex) org.apache.poi.ss.formula.SheetRangeEvaluatorintintbooleanbooleandefault truevoidsetArrayMode(boolean value)
-
Field Details
-
UDF
-
-
Constructor Details
-
OperationEvaluationContext
public OperationEvaluationContext(WorkbookEvaluator bookEvaluator, EvaluationWorkbook workbook, int sheetIndex, int srcRowNum, int srcColNum) Creates a context for evaluating formula tokens at the given position, using the evaluation tracker of the givenWorkbookEvaluator.This constructor is intended for code outside this package - e.g. custom
EvaluationWorkbookimplementations orFreeRefFunctioncallers - that needs a context but has no access to the internal evaluation tracker.- Parameters:
bookEvaluator- the evaluator of the workbook the formula belongs toworkbook- the workbook the formula belongs tosheetIndex- the index of the sheet the formula is evaluated onsrcRowNum- the row index of the formula's position (base for relative references)srcColNum- the column index of the formula's position (base for relative references)- Since:
- 6.0.0
-
OperationEvaluationContext
public OperationEvaluationContext(WorkbookEvaluator bookEvaluator, EvaluationWorkbook workbook, int sheetIndex, int srcRowNum, int srcColNum, org.apache.poi.ss.formula.EvaluationTracker tracker) -
OperationEvaluationContext
public OperationEvaluationContext(WorkbookEvaluator bookEvaluator, EvaluationWorkbook workbook, int sheetIndex, int srcRowNum, int srcColNum, org.apache.poi.ss.formula.EvaluationTracker tracker, boolean isSingleValue)
-
-
Method Details
-
isArraymode
public boolean isArraymode() -
setArrayMode
public void setArrayMode(boolean value) -
getWorkbook
-
getRowIndex
public int getRowIndex() -
getColumnIndex
public int getColumnIndex() -
getRefEvaluatorForCurrentSheet
public org.apache.poi.ss.formula.SheetRangeEvaluator getRefEvaluatorForCurrentSheet() -
getDynamicReference
public ValueEval getDynamicReference(String workbookName, String sheetName, String refStrPart1, String refStrPart2, boolean isA1Style) Resolves a cell or area reference dynamically.- Parameters:
workbookName- the name of the workbook containing the reference. Ifnullthe current workbook is assumed. Note - to evaluate formulas which use multiple workbooks, aCollaboratingWorkbooksEnvironmentmust be set up.sheetName- the name of the sheet containing the reference. May benull(whenworkbookNameis also null) in which case the current workbook and sheet is assumed.refStrPart1- the single cell reference or first part of the area reference. Must not benull.refStrPart2- the second part of the area reference. For single cell references this parameter must benullisA1Style- specifies the format forrefStrPart1andrefStrPart2. Passtruefor 'A1' style andfalsefor 'R1C1' style.- Returns:
- a
RefEvalorAreaEval - Throws:
IllegalStateException- If invalid parameters are provided
-
findUserDefinedFunction
-
getRefEval
-
getRef3DEval
-
getRef3DEval
-
getAreaEval
public ValueEval getAreaEval(int firstRowIndex, int firstColumnIndex, int lastRowIndex, int lastColumnIndex) -
getArea3DEval
-
getArea3DEval
-
getAreaValueEval
-
getNameXEval
-
getNameXEval
-
getSheetIndex
public int getSheetIndex() -
isSingleValue
public boolean isSingleValue()default true- Returns:
- flag indicating whether evaluation should "unwrap" the result to a single value based on the context row/column
-
applyR1C1Reference
public static CellReference applyR1C1Reference(CellReference anchorReference, String relativeReference)
-