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