最近在读一个EXCEL数据文件导入的东东,操作到其中一个sheet时,出现以下问题:
    单元格中存放的是,自定义格式的数据,格式为"yyyy年mm月",其中单元格中存放的数据是2005-10-1,在单元格中显示的是"2005年10月",我利用POI进行单元格获取操作,该Cell的cellType是0,也就是数字类型,但明显不符合实际情况,并且通过数字获取方式cell.getNumericCellValue(); 获取的值为38626,也不知怎么得来的数字。  请问,上面这种情况,我怎样区分它究竟是什么类型的Cell呢,并正确的返回我需要的字符类型或日期类型的数据呢?谢谢!

解决方案 »

  1.   

    日期在存储的时候通常都是被保存为数字的。
    你只要把那个数字取出来
    然后转换成Date就好了,例如
    int dt = 38626;
    Date date = new Date(0);
    date.setDate(dt);
      

  2.   

    适用HSSFDateUtil数字是1900年1月1日至今的天数
      

  3.   

    shine333(enihs)朋友的解释是正确的,
    我现在把我实际的解决方法写出来:
    其中strTJNY是我采用一个固定的函数读取出来的,因而是采用字符类型进行存储的!
    Date tjnyDate=HSSFDateUtil.getJavaDate(Double.parseDouble(strTJNY));