aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorNick Burch <nick@apache.org>2009-11-25 11:33:21 +0000
committerNick Burch <nick@apache.org>2009-11-25 11:33:21 +0000
commitab15ad1b66e1695a6a0c061a6d094f4561ccd966 (patch)
tree4749b446252dd47fcc94f3d345e13d362515f9d2 /src
parent7878ecbd1a5fd9e82a912e65f13466d0585c0b7f (diff)
downloadpoi-ab15ad1b66e1695a6a0c061a6d094f4561ccd966.tar.gz
poi-ab15ad1b66e1695a6a0c061a6d094f4561ccd966.zip
Fix from Petr for bug #24601 - fix fetching of error codes from XSSF formula cells
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@884058 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'src')
-rw-r--r--src/documentation/content/xdocs/status.xml1
-rw-r--r--src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFCell.java2
-rw-r--r--src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFCell.java14
3 files changed, 16 insertions, 1 deletions
diff --git a/src/documentation/content/xdocs/status.xml b/src/documentation/content/xdocs/status.xml
index a80cd2e9e6..fcba869f2d 100644
--- a/src/documentation/content/xdocs/status.xml
+++ b/src/documentation/content/xdocs/status.xml
@@ -34,6 +34,7 @@
<changes>
<release version="3.6-beta1" date="2009-??-??">
+ <action dev="POI-DEVELOPERS" type="fix">24601 - fix fetching of error codes from XSSF formula cells</action>
<action dev="POI-DEVELOPERS" type="fix">48229 - fixed javadoc for HSSFSheet.setColumnWidth and XSSFSheet setColumnWidth </action>
<action dev="POI-DEVELOPERS" type="fix">47757 - fixed XLSX2CSV to avoid exception when processing cells with multiple "t" elements</action>
<action dev="POI-DEVELOPERS" type="add">48195 - short-circuit evaluation of IF() and CHOOSE()</action>
diff --git a/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFCell.java b/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFCell.java
index a9ea533a28..cacc057352 100644
--- a/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFCell.java
+++ b/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFCell.java
@@ -576,7 +576,7 @@ public final class XSSFCell implements Cell {
* @see FormulaError
*/
public String getErrorCellString() {
- int cellType = getCellType();
+ int cellType = getBaseCellType(true);
if(cellType != CELL_TYPE_ERROR) throw typeMismatch(CELL_TYPE_ERROR, cellType, false);
return _cell.getV();
diff --git a/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFCell.java b/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFCell.java
index e097bfd140..256bb7bd07 100644
--- a/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFCell.java
+++ b/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFCell.java
@@ -166,4 +166,18 @@ public final class TestXSSFCell extends BaseTestCell {
//make sure we return null for that instead of throwing OutOfBounds
assertEquals(null, cell.getCellStyle());
}
+
+ /**
+ * Cell with the formula that returns error must return error code(There was
+ * an problem that cell could not return error value form formula cell).
+ */
+ public void testGetErrorCellValueFromFormulaCell() {
+ XSSFWorkbook wb = new XSSFWorkbook();
+ XSSFSheet sheet = wb.createSheet();
+ XSSFRow row = sheet.createRow(0);
+ XSSFCell cell = row.createCell(0);
+ cell.setCellFormula("SQRT(-1)");
+ wb.getCreationHelper().createFormulaEvaluator().evaluateFormulaCell(cell);
+ assertEquals(36, cell.getErrorCellValue());
+ }
}