You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by ce...@apache.org on 2013/10/16 21:47:21 UTC
svn commit: r1532873 - in /poi/trunk/src/ooxml:
java/org/apache/poi/xssf/streaming/SXSSFCell.java
testcases/org/apache/poi/xssf/streaming/TestSXSSFCell.java
Author: centic
Date: Wed Oct 16 19:47:21 2013
New Revision: 1532873
URL: http://svn.apache.org/r1532873
Log:
Bug 55658: don't fail in SXSSF if a numeric cell is overwritten with a string
Modified:
poi/trunk/src/ooxml/java/org/apache/poi/xssf/streaming/SXSSFCell.java
poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/streaming/TestSXSSFCell.java
Modified: poi/trunk/src/ooxml/java/org/apache/poi/xssf/streaming/SXSSFCell.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xssf/streaming/SXSSFCell.java?rev=1532873&r1=1532872&r2=1532873&view=diff
==============================================================================
--- poi/trunk/src/ooxml/java/org/apache/poi/xssf/streaming/SXSSFCell.java (original)
+++ poi/trunk/src/ooxml/java/org/apache/poi/xssf/streaming/SXSSFCell.java Wed Oct 16 19:47:21 2013
@@ -22,9 +22,17 @@ import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
-import org.apache.poi.ss.formula.eval.ErrorEval;
-import org.apache.poi.ss.usermodel.*;
import org.apache.poi.ss.formula.FormulaParseException;
+import org.apache.poi.ss.formula.eval.ErrorEval;
+import org.apache.poi.ss.usermodel.Cell;
+import org.apache.poi.ss.usermodel.CellStyle;
+import org.apache.poi.ss.usermodel.Comment;
+import org.apache.poi.ss.usermodel.DateUtil;
+import org.apache.poi.ss.usermodel.FormulaError;
+import org.apache.poi.ss.usermodel.Hyperlink;
+import org.apache.poi.ss.usermodel.RichTextString;
+import org.apache.poi.ss.usermodel.Row;
+import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.ss.util.CellReference;
import org.apache.poi.xssf.usermodel.XSSFHyperlink;
@@ -611,6 +619,7 @@ public class SXSSFCell implements Cell
* Errors are displayed as #ERR<errIdx>
* </p>
*/
+ @Override
public String toString() {
switch (getCellType()) {
case CELL_TYPE_BLANK:
@@ -887,6 +896,7 @@ public class SXSSFCell implements Cell
case CELL_TYPE_STRING:
return getStringCellValue();
case CELL_TYPE_NUMERIC:
+ return Double.toString( getNumericCellValue() );
case CELL_TYPE_ERROR:
byte errVal = getErrorCellValue();
return FormulaError.forInt(errVal).getString();
@@ -925,6 +935,7 @@ public class SXSSFCell implements Cell
{
super(value);
}
+ @Override
public int getType()
{
return COMMENT;
@@ -936,6 +947,7 @@ public class SXSSFCell implements Cell
{
super(value);
}
+ @Override
public int getType()
{
return HYPERLINK;
@@ -981,6 +993,7 @@ public class SXSSFCell implements Cell
{
return _value;
}
+ @Override
boolean isRichText()
{
return false;
@@ -989,6 +1002,7 @@ public class SXSSFCell implements Cell
static class RichTextValue extends StringValue
{
RichTextString _value;
+ @Override
public int getType()
{
return CELL_TYPE_STRING;
@@ -1001,6 +1015,7 @@ public class SXSSFCell implements Cell
{
return _value;
}
+ @Override
boolean isRichText()
{
return true;
@@ -1026,6 +1041,7 @@ public class SXSSFCell implements Cell
static class NumericFormulaValue extends FormulaValue
{
double _preEvaluatedValue;
+ @Override
int getFormulaType()
{
return CELL_TYPE_NUMERIC;
@@ -1042,6 +1058,7 @@ public class SXSSFCell implements Cell
static class StringFormulaValue extends FormulaValue
{
String _preEvaluatedValue;
+ @Override
int getFormulaType()
{
return CELL_TYPE_STRING;
@@ -1058,6 +1075,7 @@ public class SXSSFCell implements Cell
static class BooleanFormulaValue extends FormulaValue
{
boolean _preEvaluatedValue;
+ @Override
int getFormulaType()
{
return CELL_TYPE_BOOLEAN;
@@ -1074,6 +1092,7 @@ public class SXSSFCell implements Cell
static class ErrorFormulaValue extends FormulaValue
{
byte _preEvaluatedValue;
+ @Override
int getFormulaType()
{
return CELL_TYPE_ERROR;
Modified: poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/streaming/TestSXSSFCell.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/streaming/TestSXSSFCell.java?rev=1532873&r1=1532872&r2=1532873&view=diff
==============================================================================
--- poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/streaming/TestSXSSFCell.java (original)
+++ poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/streaming/TestSXSSFCell.java Wed Oct 16 19:47:21 2013
@@ -19,7 +19,15 @@
package org.apache.poi.xssf.streaming;
-import org.apache.poi.ss.usermodel.*;
+import java.io.IOException;
+
+import javax.xml.namespace.QName;
+
+import org.apache.poi.ss.usermodel.BaseTestCell;
+import org.apache.poi.ss.usermodel.Cell;
+import org.apache.poi.ss.usermodel.Row;
+import org.apache.poi.ss.usermodel.Sheet;
+import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.SXSSFITestDataProvider;
import org.apache.poi.xssf.XSSFITestDataProvider;
import org.apache.poi.xssf.usermodel.XSSFCell;
@@ -27,10 +35,6 @@ import org.apache.poi.xssf.usermodel.XSS
import org.apache.xmlbeans.XmlCursor;
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTRst;
-import javax.xml.namespace.QName;
-import java.io.FileOutputStream;
-import java.io.IOException;
-
/**
*
*/
@@ -144,4 +148,24 @@ public class TestSXSSFCell extends BaseT
assertEquals("expected xml:spaces=\"preserve\" \"" + str + "\"", "preserve", t);
}
}
+
+ public void testBug55658SetNumericValue(){
+ Workbook wb = new SXSSFWorkbook();
+ Sheet sh = wb.createSheet();
+ Row row = sh.createRow(0);
+ Cell cell = row.createCell(0);
+ cell.setCellValue(Integer.valueOf(23));
+
+ cell.setCellValue("some");
+
+ cell = row.createCell(1);
+ cell.setCellValue(Integer.valueOf(23));
+
+ cell.setCellValue("24");
+
+ wb = _testDataProvider.writeOutAndReadBack(wb);
+
+ assertEquals("some", wb.getSheetAt(0).getRow(0).getCell(0).getStringCellValue());
+ assertEquals("24", wb.getSheetAt(0).getRow(0).getCell(1).getStringCellValue());
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org