有没有哪位大哥对POI熟?

我在读EXCEL的时候,对Date型处理老是不行,卡住了,没法往下走了,我的日期在EXCEL里面是以:年-月-日 表示的。
我的读取方法是按POI的faq里面提供的方法:

      
case HSSFCell.CELL_TYPE_NUMERIC:
double d = cell.getNumericCellValue();
// test if a date!
if (HSSFDateUtil.isCellDateFormatted(cell)) {
// format in form of M/D/YY
cal.setTime(HSSFDateUtil.getJavaDate(d));
cellText =
(String.valueOf(cal.get(Calendar.YEAR))).substring(2);
cellText = cal.get(Calendar.MONTH)+1 +
"/" +
cal.get(Calendar.DAY_OF_MONTH) +
"/" +
cellText;
}

但是现在就是 HSSFDateUtil.isCellDateFormatted(cell)老是不能为真,不知道是为什么?

可能还不只你想的这些。我在用的过程中,发现POI对输入了数字的单元格,无论你怎么设定,它读出来都是数字,而且不足8位就自动加“.0”,8位以上变成了科学计数法,实在是很郁闷。这个bug我在POI的mailinglist里也看到了,据说是1.5就已经有了,到现在也没有解决。
我的办法是在程序中自己添了一些处理。

对啊,从里面EXCEL里面取出来的数值有小数的都会四舍五入变成双精度型,不能原样读出,不知道有没有办法?