日期:2014-05-20  浏览次数:20822 次

使用java poi操作excel表,在将获取的数据用parseLong转换格式时老是出错,实在不清楚原因(含代码)
package   yuebao;

import   java.io.*;
import   java.text.DateFormat;

import   org.apache.poi.hssf.usermodel.*;
import   org.apache.poi.poifs.filesystem.POIFSFileSystem;

public   class   CallRecord  
{
public   static   void   main(String[]   args)
{
POIFSFileSystem   pfs=null;
HSSFWorkbook   hwb=null;
try
{
pfs=new   POIFSFileSystem(new   FileInputStream( "07-06-28-07-07-27.xls "));
hwb=new   HSSFWorkbook(pfs);
HSSFSheet   sheet=hwb.getSheetAt(0);
        System.out.println(sheet.getRow(4).getCell((short)1).toString());
        HSSFCell   cl=sheet.getRow(5).getCell((short)1);
        System.out.println(Integer.parseInt(cl.toString().trim()));
        FileOutputStream   fos=new   FileOutputStream( "07-06-28-07-07-27.xls ");
        hwb.write(fos);
        fos.flush();
        fos.close();
}
catch   (FileNotFoundException   e)
{
e.printStackTrace();
}
catch(IOException   e)
{
e.printStackTrace();
}

    }
}

执行到一半就出现异常提示:NumberFormatException,
发生异常的地方是System.out.println(Integer.parseInt(cl.toString().trim()));

我的excel表中的数据格式为“常规”格式,实在不明白是出现了什么问题


------解决方案--------------------
你debug一下
看看cl是什么
然后看是每个cl都出错还是特定的那个有错
------解决方案--------------------
你调试时加上断点看看cl获取到的值是什么,可能不是纯数字格式的。
------解决方案--------------------
298105.0 它不是整数,你转换成int型当然出错了,用BigDecimal
------解决方案--------------------
用double来进行转换