public class HSSFFormulaEvaluator extends Object implements FormulaEvaluator
clearAllCachedResultValues()
if any workbook cells are changed between
calls to evaluate~ methods on this class.Constructor and Description |
---|
HSSFFormulaEvaluator(HSSFSheet sheet,
HSSFWorkbook workbook)
Deprecated.
(Sep 2008) HSSFSheet parameter is ignored
|
HSSFFormulaEvaluator(HSSFWorkbook workbook) |
HSSFFormulaEvaluator(HSSFWorkbook workbook,
IStabilityClassifier stabilityClassifier) |
Modifier and Type | Method and Description |
---|---|
void |
clearAllCachedResultValues()
Should be called whenever there are major changes (e.g.
|
static HSSFFormulaEvaluator |
create(HSSFWorkbook 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(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.
|
CellValue |
evaluateFormula(int sheetIndex,
String formula,
Object ref) |
int |
evaluateFormulaCell(Cell cell)
If cell contains formula, it evaluates the formula, and saves the result of the formula.
|
ValueEval |
evaluateFormulaValueEval(int sheetIndex,
String formula,
boolean ignoreDereference,
Object ref) |
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.
|
CellValue |
getCellValueByValueEval(ValueEval eval) |
WorkbookEvaluator |
getWorkbookEvaluator() |
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 |
setCurrentRow(HSSFRow row)
Deprecated.
(Aug 2008) - not needed, since the current row can be derived from the cell
|
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(String[] workbookNames,
HSSFFormulaEvaluator[] evaluators)
Coordinates several formula evaluators together so that formulas that involve external
references can be evaluated.
|
public HSSFFormulaEvaluator(HSSFSheet sheet, HSSFWorkbook workbook)
public HSSFFormulaEvaluator(HSSFWorkbook workbook)
public HSSFFormulaEvaluator(HSSFWorkbook workbook, IStabilityClassifier stabilityClassifier)
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 HSSFFormulaEvaluator create(HSSFWorkbook 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 static void setupEnvironment(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 setCurrentRow(HSSFRow row)
public void clearAllCachedResultValues()
clearAllCachedResultValues
in interface FormulaEvaluator
public void notifyUpdateCell(HSSFCell cell)
public void notifyUpdateCell(Cell cell)
FormulaEvaluator
notifyUpdateCell
in interface FormulaEvaluator
public void notifyDeleteCell(HSSFCell cell)
public void notifyDeleteCell(Cell cell)
FormulaEvaluator
notifyDeleteCell
in interface FormulaEvaluator
public void notifySetFormula(Cell cell)
notifySetFormula
in interface FormulaEvaluator
public CellValue evaluate(Cell cell)
evaluate
in interface FormulaEvaluator
cell
- may be null
signifying that the cell is not present (or blank)null
if the supplied cell is null
or blankpublic 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
evaluateInCell(org.zkoss.poi.ss.usermodel.Cell)
evaluateFormulaCell
in interface FormulaEvaluator
cell
- The cell to evaluatepublic HSSFCell 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(Cell)
}evaluateInCell
in interface FormulaEvaluator
public static void evaluateAllFormulaCells(HSSFWorkbook wb)
public static void evaluateAllFormulaCells(Workbook wb)
public void evaluateAll()
evaluateAll
in interface FormulaEvaluator
public WorkbookEvaluator getWorkbookEvaluator()
getWorkbookEvaluator
in interface FormulaEvaluator
public CellValue getCellValueByValueEval(ValueEval eval)
getCellValueByValueEval
in interface FormulaEvaluator
public void setIgnoreMissingWorkbooks(boolean ignore)
In some cases exetrnal workbooks referenced by formulas in the main workbook are not avaiable. With this method you can control how POI handles such missing references:
CollaboratingWorkbooksEnvironment.WorkbookNotFoundException
if an external reference cannot be resolvedignore
- whether to ignore missing references to external workbookspublic void setDebugEvaluationOutputForNextEval(boolean value)
setDebugEvaluationOutputForNextEval
in interface FormulaEvaluator
value
- whether to perform detailed outputpublic CellValue evaluateFormula(int sheetIndex, String formula, Object ref)
evaluateFormula
in interface FormulaEvaluator
public ValueEval evaluateFormulaValueEval(int sheetIndex, String formula, boolean ignoreDereference, Object ref)
evaluateFormulaValueEval
in interface FormulaEvaluator
Copyright © 2020. All rights reserved.