You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@poi.apache.org by bu...@apache.org on 2003/01/24 23:15:03 UTC

DO NOT REPLY [Bug 16410] New: - Exception when using HSSFCell.setCellType to change cell type of existing cell

DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=16410>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=16410

Exception when using HSSFCell.setCellType to change cell type of existing cell

           Summary: Exception when using HSSFCell.setCellType to change cell
                    type of existing cell
           Product: POI
           Version: 1.5.1
          Platform: PC
        OS/Version: Windows XP
            Status: NEW
          Severity: Normal
          Priority: Other
         Component: HSSF
        AssignedTo: poi-dev@jakarta.apache.org
        ReportedBy: jason@compositesw.com


POI version 1.5.1
excel 2002 10.2614.2625

not sure what the behavior of setCellType should be, but this strikes me as a 
bug. my assumption is that a cell, regardless of it's content, can have its 
type changed without directly modifying the content first.


using the example program, ReadWriteWorkbook, with a blank excel spreadsheet 
called workbook.xls. when the example program tries to set the cell type to 
CELL_TYPE_STRING the following exception is thrown:

Exception in thread "main" java.lang.NumberFormatException: You cannot get a str
ing value from a numeric cell
        at org.apache.poi.hssf.usermodel.HSSFCell.getStringCellValue(HSSFCell.ja
va:757)
        at org.apache.poi.hssf.usermodel.HSSFCell.setCellType(HSSFCell.java:495)

        at org.apache.poi.hssf.usermodel.HSSFCell.setCellType(HSSFCell.java:410)

        at org.apache.poi.hssf.usermodel.examples.ReadWriteWorkbook.main(ReadWri
teWorkbook.java:86)

in order to find out more i modified the example program and found the 
following:
the cell defaults to CELL_TYPE_NUMERIC.
if the cell VALUE is set as a numeric with a value of 0, then the value is set 
to a null string, then the cell type is changed to a string, it works fine.

guess at what is happening: cell, upon change of type, accesses the data in the 
cell as the type it will become. the cell type has not changed yet, so there is 
an exception where the data, still as old type cell, is trying to be accessed 
as new type cell.

the same behavior occurs when trying to convert to numeric cell to string cell.