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
This commit is contained in:
Nick Burch 2009-11-25 11:33:21 +00:00
parent aadaa3c9ef
commit fda29835b2
3 changed files with 16 additions and 1 deletions

View File

@ -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>

View File

@ -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();

View File

@ -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());
}
}