使用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来进行转换