public class XSSFFormulaEvaluator extends java.lang.Object implements FormulaEvaluator
clearAllCachedResultValues() if any workbook cells are changed between
calls to evaluate~ methods on this class.| Constructor and Description |
|---|
XSSFFormulaEvaluator(XSSFWorkbook workbook) |
XSSFFormulaEvaluator(XSSFWorkbook workbook,
IStabilityClassifier stabilityClassifier)
Deprecated.
(Sep 2009) (reduce overloading) use
create(XSSFWorkbook, org.apache.poi.ss.formula.IStabilityClassifier, org.apache.poi.ss.formula.udf.UDFFinder) |
| Modifier and Type | Method and Description |
|---|---|
void |
clearAllCachedResultValues()
Should be called whenever there are major changes (e.g. moving sheets) to input cells
in the evaluated workbook.
|
static XSSFFormulaEvaluator |
create(XSSFWorkbook workbook,
IStabilityClassifier stabilityClassifier,
UDFFinder udfFinder) |
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.
|
void |
evaluateAll()
Loops over all cells in all sheets of the supplied
workbook.
|
static void |
evaluateAllFormulaCells(XSSFWorkbook wb)
Loops over all cells in all sheets of the supplied
workbook.
|
int |
evaluateFormulaCell(Cell cell)
If cell contains formula, it evaluates the formula,
and saves the result of the formula.
|
XSSFCell |
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.
|
void |
notifyDeleteCell(Cell cell)
Should be called to tell the cell value cache that the specified cell has just become a
formula cell, or the formula text has changed
|
void |
notifySetFormula(Cell cell)
Should be called to tell the cell value cache that the specified (value or formula) cell
has changed.
|
void |
notifyUpdateCell(Cell cell)
Should be called to tell the cell value cache that the specified (value or formula) cell
has changed.
|
void |
setDebugEvaluationOutputForNextEval(boolean value)
Perform detailed output of formula evaluation for next evaluation only?
|
public XSSFFormulaEvaluator(XSSFWorkbook workbook)
@Deprecated public XSSFFormulaEvaluator(XSSFWorkbook workbook, IStabilityClassifier stabilityClassifier)
create(XSSFWorkbook, org.apache.poi.ss.formula.IStabilityClassifier, org.apache.poi.ss.formula.udf.UDFFinder)stabilityClassifier - used to optimise caching performance. Pass null
for the (conservative) assumption that any cell may have its definition changed after
evaluation begins.public static XSSFFormulaEvaluator create(XSSFWorkbook workbook, IStabilityClassifier stabilityClassifier, UDFFinder udfFinder)
stabilityClassifier - used to optimise caching performance. Pass null
for the (conservative) assumption that any cell may have its definition changed after
evaluation begins.udfFinder - pass null for default (AnalysisToolPak only)public void clearAllCachedResultValues()
clearAllCachedResultValues in interface FormulaEvaluatorpublic void notifySetFormula(Cell cell)
FormulaEvaluatornotifySetFormula in interface FormulaEvaluatorpublic void notifyDeleteCell(Cell cell)
FormulaEvaluatornotifyDeleteCell in interface FormulaEvaluatorpublic void notifyUpdateCell(Cell cell)
FormulaEvaluatornotifyUpdateCell in interface FormulaEvaluatorpublic CellValue evaluate(Cell cell)
evaluate in interface FormulaEvaluatorcell - public int evaluateFormulaCell(Cell cell)
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
evaluate(org.apache.poi.ss.usermodel.Cell) }evaluateFormulaCell in interface FormulaEvaluatorcell - The cell to evaluatepublic XSSFCell 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
evaluateFormulaCell(org.apache.poi.ss.usermodel.Cell) }evaluateInCell in interface FormulaEvaluatorcell - public static void evaluateAllFormulaCells(XSSFWorkbook wb)
public void evaluateAll()
evaluateAll in interface FormulaEvaluatorpublic void setDebugEvaluationOutputForNextEval(boolean value)
setDebugEvaluationOutputForNextEval in interface FormulaEvaluatorvalue - whether to perform detailed outputCopyright 2014 The Apache Software Foundation or its licensors, as applicable.