|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.apache.poi.ss.formula.BaseFormulaEvaluator
org.apache.poi.hssf.usermodel.HSSFFormulaEvaluator
public class HSSFFormulaEvaluator
Evaluates formula cells.
For performance reasons, this class keeps a cache of all previously calculated intermediate
cell values. Be sure to call BaseFormulaEvaluator.clearAllCachedResultValues() if any workbook cells are changed between
calls to evaluate~ methods on this class.
| Field Summary |
|---|
| Fields inherited from class org.apache.poi.ss.formula.BaseFormulaEvaluator |
|---|
_bookEvaluator |
| Constructor Summary | |
|---|---|
HSSFFormulaEvaluator(HSSFWorkbook workbook)
|
|
HSSFFormulaEvaluator(HSSFWorkbook workbook,
IStabilityClassifier stabilityClassifier)
|
|
| Method Summary | |
|---|---|
static HSSFFormulaEvaluator |
create(HSSFWorkbook workbook,
IStabilityClassifier stabilityClassifier,
UDFFinder udfFinder)
|
protected RichTextString |
createRichTextString(java.lang.String str)
|
void |
evaluateAll()
Loops over all cells in all sheets of the supplied workbook. |
static void |
evaluateAllFormulaCells(HSSFWorkbook wb)
Loops over all cells in all sheets of the supplied workbook. |
static void |
evaluateAllFormulaCells(Workbook wb)
Loops over all cells in all sheets of the supplied workbook. |
protected CellValue |
evaluateFormulaCellValue(Cell cell)
Returns a CellValue wrapper around the supplied ValueEval instance. |
HSSFCell |
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 |
notifyDeleteCell(HSSFCell cell)
Should be called to tell the cell value cache that the specified cell has just been deleted. |
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 |
notifyUpdateCell(HSSFCell 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? 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,
HSSFFormulaEvaluator[] 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 org.apache.poi.ss.formula.BaseFormulaEvaluator |
|---|
_getWorkbookEvaluator, clearAllCachedResultValues, evaluate, evaluateAllFormulaCells, evaluateFormulaCell, evaluateFormulaCellEnum, setCellType, setCellValue, setupEnvironment |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
public HSSFFormulaEvaluator(HSSFWorkbook workbook)
public HSSFFormulaEvaluator(HSSFWorkbook workbook,
IStabilityClassifier stabilityClassifier)
workbook - The workbook to perform the formula evaluations instabilityClassifier - used to optimise caching performance. Pass null
for the (conservative) assumption that any cell may have its definition changed after
evaluation begins.| Method Detail |
|---|
public static HSSFFormulaEvaluator create(HSSFWorkbook workbook,
IStabilityClassifier stabilityClassifier,
UDFFinder udfFinder)
workbook - The workbook to perform the formula evaluations instabilityClassifier - 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)protected RichTextString createRichTextString(java.lang.String str)
createRichTextString in class BaseFormulaEvaluator
public static void setupEnvironment(java.lang.String[] workbookNames,
HSSFFormulaEvaluator[] 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 FormulaEvaluatorsetupReferencedWorkbooks in class BaseFormulaEvaluatorevaluators - Map of workbook names (no square brackets) to an evaluator on that workbookpublic void notifyUpdateCell(HSSFCell cell)
public void notifyUpdateCell(Cell cell)
FormulaEvaluator
public void notifyDeleteCell(HSSFCell cell)
public void notifyDeleteCell(Cell cell)
FormulaEvaluator
public void notifySetFormula(Cell cell)
public HSSFCell evaluateInCell(Cell cell)
BaseFormulaEvaluatorint 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
BaseFormulaEvaluator.evaluateFormulaCellEnum(Cell)}
evaluateInCell in interface FormulaEvaluatorevaluateInCell in class BaseFormulaEvaluatorcell that was passed in, allowing for chained callspublic static void evaluateAllFormulaCells(HSSFWorkbook wb)
public static void evaluateAllFormulaCells(Workbook wb)
public void evaluateAll()
protected CellValue evaluateFormulaCellValue(Cell cell)
evaluateFormulaCellValue in class BaseFormulaEvaluatorcell - 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 FormulaEvaluatorsetIgnoreMissingWorkbooks in class BaseFormulaEvaluatorignore - whether to ignore missing references to external workbookspublic void setDebugEvaluationOutputForNextEval(boolean value)
setDebugEvaluationOutputForNextEval in interface FormulaEvaluatorsetDebugEvaluationOutputForNextEval in class BaseFormulaEvaluatorvalue - whether to perform detailed output
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||