From 513f87c21312c387c23e9a96a260739d0def2903 Mon Sep 17 00:00:00 2001 From: Yegor Kozlov Date: Wed, 16 Sep 2009 19:59:39 +0000 Subject: [PATCH] Added possibility to get EvaluationCell from RefEval, see bugzilla 47849 git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@815942 13f79535-47bb-0310-9956-ffa450edef68 --- src/documentation/content/xdocs/status.xml | 3 ++- .../poi/hssf/record/formula/eval/RefEval.java | 9 +++++++++ src/java/org/apache/poi/ss/formula/LazyRefEval.java | 4 ++++ .../apache/poi/ss/formula/SheetRefEvaluator.java | 13 +++++++++++++ 4 files changed, 28 insertions(+), 1 deletion(-) diff --git a/src/documentation/content/xdocs/status.xml b/src/documentation/content/xdocs/status.xml index 2e39f07ee3..fcb0640b82 100644 --- a/src/documentation/content/xdocs/status.xml +++ b/src/documentation/content/xdocs/status.xml @@ -32,7 +32,8 @@ - + + 47849 - Added possibility to get EvaluationCell from RefEval 47848 - Added method createEvaluationWorkbook() to CreationHelper 47809 - Improved work with user-defined functions 47581 - fixed XSSFSheet.setColumnWidth to produce XML compatible with Mac Excel 2008 diff --git a/src/java/org/apache/poi/hssf/record/formula/eval/RefEval.java b/src/java/org/apache/poi/hssf/record/formula/eval/RefEval.java index 397d1f1c94..c2b4583254 100644 --- a/src/java/org/apache/poi/hssf/record/formula/eval/RefEval.java +++ b/src/java/org/apache/poi/hssf/record/formula/eval/RefEval.java @@ -17,6 +17,8 @@ package org.apache.poi.hssf.record.formula.eval; +import org.apache.poi.ss.formula.EvaluationCell; + /** * @author Amol S Deshmukh < amolweb at ya hoo dot com > * @@ -26,6 +28,8 @@ package org.apache.poi.hssf.record.formula.eval; * reference. Thus if the HSSFCell has type CELL_TYPE_NUMERIC, the contained * value object should be of type NumberEval; if cell type is CELL_TYPE_STRING, * contained value object should be of type StringEval + * + * Modified 09/07/09 by Petr Udalau - added method getEvaluationCell(). */ public interface RefEval extends ValueEval { @@ -48,4 +52,9 @@ public interface RefEval extends ValueEval { * Creates an {@link AreaEval} offset by a relative amount from this RefEval */ AreaEval offset(int relFirstRowIx, int relLastRowIx, int relFirstColIx, int relLastColIx); + + /** + * @return EvaluationCell referred to by this RefEval + */ + EvaluationCell getEvaluationCell(); } diff --git a/src/java/org/apache/poi/ss/formula/LazyRefEval.java b/src/java/org/apache/poi/ss/formula/LazyRefEval.java index 2a97c67c48..3626bc0412 100644 --- a/src/java/org/apache/poi/ss/formula/LazyRefEval.java +++ b/src/java/org/apache/poi/ss/formula/LazyRefEval.java @@ -52,6 +52,10 @@ final class LazyRefEval extends RefEvalBase { return _evaluator.getEvalForCell(getRow(), getColumn()); } + public EvaluationCell getEvaluationCell() { + return _evaluator.getEvaluationCell(getRow(), getColumn()); + } + public AreaEval offset(int relFirstRowIx, int relLastRowIx, int relFirstColIx, int relLastColIx) { AreaI area = new OffsetArea(getRow(), getColumn(), diff --git a/src/java/org/apache/poi/ss/formula/SheetRefEvaluator.java b/src/java/org/apache/poi/ss/formula/SheetRefEvaluator.java index 97568cfec4..b3ff5e4d3e 100644 --- a/src/java/org/apache/poi/ss/formula/SheetRefEvaluator.java +++ b/src/java/org/apache/poi/ss/formula/SheetRefEvaluator.java @@ -22,6 +22,10 @@ import org.apache.poi.hssf.record.formula.eval.ValueEval; * * * @author Josh Micich + * + * June 4, 2009: Added method setCellValue for setting values in cells. + * + * Modified 09/07/09 by Petr Udalau - added method getEvaluationCell(int rowIndex, int columnIndex). */ final class SheetRefEvaluator { @@ -53,4 +57,13 @@ final class SheetRefEvaluator { } return _sheet; } + + /** + * @param rowIndex Row index. + * @param columnIndex Column index. + * @return EvaluationCell by row and column. + */ + public EvaluationCell getEvaluationCell(int rowIndex, int columnIndex){ + return getSheet().getCell(rowIndex, columnIndex); + } } -- 2.39.5