|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.apache.poi.ss.formula.BaseFormulaEvaluator
public abstract class BaseFormulaEvaluator
Common functionality across file formats for evaluating formula cells.
| Field Summary | |
|---|---|
protected WorkbookEvaluator |
_bookEvaluator
|
| Constructor Summary | |
|---|---|
protected |
BaseFormulaEvaluator(WorkbookEvaluator bookEvaluator)
|
| Method Summary | |
|---|---|
WorkbookEvaluator |
_getWorkbookEvaluator()
Provide the underlying WorkbookEvaluator |
void |
clearAllCachedResultValues()
Should be called whenever there are major changes (e.g. |
protected abstract RichTextString |
createRichTextString(java.lang.String str)
|
CellValue |
evaluate(Cell cell)
If cell contains a formula, the formula is evaluated and returned, else the CellValue simply copies the appropriate cell value from the cell and also its cell type. |
static void |
evaluateAllFormulaCells(Workbook wb)
Loops over all cells in all sheets of the supplied workbook. |
protected static void |
evaluateAllFormulaCells(Workbook wb,
FormulaEvaluator evaluator)
|
int |
evaluateFormulaCell(Cell cell)
Deprecated. 3.15. Will return a CellType enum in the future. |
CellType |
evaluateFormulaCellEnum(Cell cell)
If cell contains formula, it evaluates the formula, and saves the result of the formula. |
protected abstract CellValue |
evaluateFormulaCellValue(Cell cell)
|
Cell |
evaluateInCell(Cell cell)
If cell contains formula, it evaluates the formula, and puts the formula result back into the cell, in place of the old formula. |
protected static void |
setCellType(Cell cell,
CellValue cv)
|
protected void |
setCellValue(Cell cell,
CellValue cv)
|
void |
setDebugEvaluationOutputForNextEval(boolean value)
Perform detailed output of formula evaluation for next evaluation only? Is for developer use only (also developers using POI for their XLS files). |
void |
setIgnoreMissingWorkbooks(boolean ignore)
Whether to ignore missing references to external workbooks and use cached formula results in the main workbook instead. |
static void |
setupEnvironment(java.lang.String[] workbookNames,
BaseFormulaEvaluator[] evaluators)
Coordinates several formula evaluators together so that formulas that involve external references can be evaluated. |
void |
setupReferencedWorkbooks(java.util.Map<java.lang.String,FormulaEvaluator> evaluators)
Sets up the Formula Evaluator to be able to reference and resolve links to other workbooks, eg [Test.xls]Sheet1!A1. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Methods inherited from interface org.apache.poi.ss.usermodel.FormulaEvaluator |
|---|
evaluateAll, notifyDeleteCell, notifySetFormula, notifyUpdateCell |
| Field Detail |
|---|
protected final WorkbookEvaluator _bookEvaluator
| Constructor Detail |
|---|
protected BaseFormulaEvaluator(WorkbookEvaluator bookEvaluator)
| Method Detail |
|---|
public static void setupEnvironment(java.lang.String[] workbookNames,
BaseFormulaEvaluator[] evaluators)
workbookNames - the simple file names used to identify the workbooks in formulas
with external links (for example "MyData.xls" as used in a formula "[MyData.xls]Sheet1!A1")evaluators - all evaluators for the full set of workbooks required by the formulas.public void setupReferencedWorkbooks(java.util.Map<java.lang.String,FormulaEvaluator> evaluators)
FormulaEvaluatorFor a workbook referenced as [Test.xls]Sheet1!A1, you should supply a map containing the key Test.xls (no square brackets), and an open FormulaEvaluator onto that Workbook.
setupReferencedWorkbooks in interface FormulaEvaluatorevaluators - Map of workbook names (no square brackets) to an evaluator on that workbookpublic WorkbookEvaluator _getWorkbookEvaluator()
WorkbookEvaluatorProvider
_getWorkbookEvaluator in interface WorkbookEvaluatorProviderpublic void clearAllCachedResultValues()
clearAllCachedResultValues in interface FormulaEvaluatorpublic CellValue evaluate(Cell cell)
evaluate in interface FormulaEvaluatorcell - may be null signifying that the cell is not present (or blank)
null if the supplied cell is null or blankpublic Cell evaluateInCell(Cell cell)
int evaluatedCellType = evaluator.evaluateInCell(cell).getCellType();Be aware that your cell value will be changed to hold the result of the formula. If you simply want the formula value computed for you, use
evaluateFormulaCellEnum(Cell)}
evaluateInCell in interface FormulaEvaluatorcell -
cell that was passed in, allowing for chained callsprotected abstract CellValue evaluateFormulaCellValue(Cell cell)
public int evaluateFormulaCell(Cell cell)
CellType enum in the future.
int evaluatedCellType = evaluator.evaluateFormulaCell(cell);Be aware that your cell will hold both the formula, and the result. If you want the cell replaced with the result of the formula, use
evaluateInCell(org.apache.poi.ss.usermodel.Cell)
evaluateFormulaCell in interface FormulaEvaluatorcell - The cell to evaluate
public CellType evaluateFormulaCellEnum(Cell cell)
CellType evaluatedCellType = evaluator.evaluateFormulaCellEnum(cell);Be aware that your cell will hold both the formula, and the result. If you want the cell replaced with the result of the formula, use
evaluate(org.apache.poi.ss.usermodel.Cell) }
evaluateFormulaCellEnum in interface FormulaEvaluatorcell - The cell to evaluate
CellType._NONE rather than throwing an exception.
protected static void setCellType(Cell cell,
CellValue cv)
protected abstract RichTextString createRichTextString(java.lang.String str)
protected void setCellValue(Cell cell,
CellValue cv)
public static void evaluateAllFormulaCells(Workbook wb)
protected static void evaluateAllFormulaCells(Workbook wb,
FormulaEvaluator evaluator)
public void setIgnoreMissingWorkbooks(boolean ignore)
In some cases external workbooks referenced by formulas in the main workbook are not available. With this method you can control how POI handles such missing references:
CollaboratingWorkbooksEnvironment.WorkbookNotFoundException
if an external reference cannot be resolved
setIgnoreMissingWorkbooks in interface FormulaEvaluatorignore - whether to ignore missing references to external workbookspublic void setDebugEvaluationOutputForNextEval(boolean value)
setDebugEvaluationOutputForNextEval in interface FormulaEvaluatorvalue - whether to perform detailed output
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||