我用下面的代码读取excel中不同类型的数据  switch(cellType)  
{  
case HSSFCell.CELL_TYPE_NUMERIC:  
调用getNumericCellValue();break;  
  case HSSFCell.CELL_TYPE_STRING:  
调用getStringCellValue();break;  
}  我的程序里注重的是数据的格式而不是数据的类型,我希望读取到的数据的格式能够与excel中的原始格式一致,但是getNumericCellValue()返回的是Double型,那样即使excel中是整数,使用getNumericCellValue()获得的数据也被加上了小数位。我觉得POI给我画蛇添足了。所以 

解决方案 »

  1.   

    http://goro.iteye.com/blog/1666703
    Java去掉数字里多余的0. :)
      

  2.   

    因为EXCEL存储的本来就是浮点数,你看到的整数只是格式化的浮点数
      

  3.   

    我知道啊。 
     比如:我在excel 里面 写的是  123
      程序 取到到的值 :123.0  变成了浮点数 。
     有什么办法让 123  不变成123.0么 。
      

  4.   


    public static String getPrettyNumber(String number) {  
        return BigDecimal.valueOf(Double.parseDouble(number))  
                .stripTrailingZeros().toPlainString();  
    }  
      
    public static void main(String[] args) {  
        String intNumber = "00012340";  
        System.out.println(getPrettyNumber(intNumber));  
        String doubleNumber = "00012.340";  
        System.out.println(getPrettyNumber(doubleNumber));  
          
        String eNumber = "1.2e3";  
        System.out.println(getPrettyNumber(eNumber));  

      

  5.   

    确定是整数的话取intValue就是了Double value = getNumericCellValue();
    int intValue = value.intValue();
      

  6.   


    +1 不过double确实有加 .0的问题。