急!POI中读取自定义格式(日期)数据的问题

hant 2006-02-20 08:13:52
最近在读一个EXCEL数据文件导入的东东,操作到其中一个sheet时,出现以下问题:
单元格中存放的是,自定义格式的数据,格式为"yyyy年mm月",其中单元格中存放的数据是2005-10-1,在单元格中显示的是"2005年10月",我利用POI进行单元格获取操作,该Cell的cellType是0,也就是数字类型,但明显不符合实际情况,并且通过数字获取方式cell.getNumericCellValue(); 获取的值为38626,也不知怎么得来的数字。

请问,上面这种情况,我怎样区分它究竟是什么类型的Cell呢,并正确的返回我需要的字符类型或日期类型的数据呢?谢谢!
...全文
926 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
hant 2006-02-24
  • 打赏
  • 举报
回复
shine333(enihs)朋友的解释是正确的,
我现在把我实际的解决方法写出来:
其中strTJNY是我采用一个固定的函数读取出来的,因而是采用字符类型进行存储的!
Date tjnyDate=HSSFDateUtil.getJavaDate(Double.parseDouble(strTJNY));
shine333 2006-02-22
  • 打赏
  • 举报
回复
微软的excel的记录的数据的含义和java的差别很大,不是你随心所欲可以随便猜测的

据个最夸张的例子,根据曾经看过的一个pdf文档(好像是微软出的),单元格的列宽,在xls文件里面的保存的数字(好像是2字节)含义是:

1单位宽度,代表该Excel文档第一个字体,显示数字“0”的宽度1/255
shine333 2006-02-22
  • 打赏
  • 举报
回复
infowain(infowain)
不知道不要乱说,excel的日期是days since 1900-01-01的,java的Date是milliseconds since 1970-01-01 00:00:00.000的
infowain 2006-02-21
  • 打赏
  • 举报
回复
日期在存储的时候通常都是被保存为数字的。
你只要把那个数字取出来
然后转换成Date就好了,例如
int dt = 38626;
Date date = new Date(0);
date.setDate(dt);
infowain 2006-02-21
  • 打赏
  • 举报
回复
日期在存储的时候通常都是被保存为数字的。
你只要把那个数字取出来
然后转换成Date就好了,例如
int dt = 38626;
Date date = new Date(0);
date.setDate(dt);
infowain 2006-02-21
  • 打赏
  • 举报
回复
日期在存储的时候通常都是被保存为数字的。
你只要把那个数字取出来
然后转换成Date就好了,例如
int dt = 38626;
Date date = new Date(0);
date.setDate(dt);
shine333 2006-02-21
  • 打赏
  • 举报
回复
see http://community.csdn.net/Expert/topic/4567/4567846.xml?temp=.6809351

62,616

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧