jxl 读取date类型的cell的问题 用jxl读取excel中为date类型的cell,为什么读出来后是number类型的?比如我读“2006年7月” 读出来的却是“35123”这样的数字怎么能将“2006年7月”直接读出来,或者将这个数字转化成“2006年7月”呢?求高人指点 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 excel格式是2006-7时可以读出来,“2006年7月”这种格式没试过 关注!!! 在excl里你的那一列是日期类型的吗?//注册日期 if(rs.getCell(2,i).getType() == CellType.DATE){ DateCell datec11 = (DateCell)rs.getCell(2, i); Date date = datec11.getDate(); if(date!=null){ misRegInfo.setRegDate(date); } } 楼上各位这个问题已经解决忘记结贴了“2006年7月”这种格式,取出来一定是number,不管你excel里是什么。。需要自己写个转换函数.在调用java的SimpleDateFormat类格式化。 不是的,我测试过,是可以取出Date的。public class XlsRead { public static void main(String[] args) throws BiffException, IOException{ String dest = "E:\\test.xls"; InputStream is = new FileInputStream(dest); Workbook rwb = Workbook.getWorkbook(is); Sheet rs = rwb.getSheet(0); for(int i=1;i<rs.getRows();i++){ //注册日期 if(rs.getCell(0,i).getType() == CellType.DATE){ DateCell datec11 = (DateCell)rs.getCell(0, i); Date date = datec11.getDate(); System.out.println(date); } } rwb.close(); }}我虽然帖了代码,但我觉得关键应该不在代码。而是你excel文件的问题。在你存放日期的那列,应该设置单元格格式,并且选择相应的格式。 是可以取到Date型的但是“2006年7月”这种格式不行,最起码在我的excel不行,不管你再excel里面给他设定什么样的format话说,上次送给楼上20分,这次又相中我了?贴转换过程,顺便送你分。 String tempTime = st.getCell(0, k + 1).getContents(); long tempTimeLong = Long.valueOf(tempTime).intValue(); //将数字转化成long型 long ss = (tempTimeLong - 70 * 365 - 17 - 2) * 24 * 3600 * 1000; //excel的那个数字是距离1900年的天数 //java 是距离1970年天数,但是明明期间只有17个闰年 //我尝试的结果要减19才能正确,原因不明 Date dss = new Date(ss); //用这个数字初始化一个Date SimpleDateFormat formatter = new SimpleDateFormat("yyyy年MM月dd日"); String sss = formatter.format(dss); 出现一个问题:cannot be resolved to a type 关于“向上类型转换” 这样的代码会造成内存泄露吗? 怎样实现图片翻转? 我的操作系统是Windows Server2000.安装Java时,提示不支持.为什么? 关于J2EE与JSP的学习? applet的问题 请问创建一个JFrame与JPanel有什么不同? Socket网络编程的问题 HashSet中的hashcode 的问题 从cvs迁出后的项目报错 java创建UTF-16编码的文件乱码..似乎从来没有人碰到过这个问题.
//注册日期
if(rs.getCell(2,i).getType() == CellType.DATE){
DateCell datec11 = (DateCell)rs.getCell(2, i);
Date date = datec11.getDate();
if(date!=null){
misRegInfo.setRegDate(date);
}
}
忘记结贴了“2006年7月”这种格式,取出来一定是number,不管你excel里是什么。。
需要自己写个转换函数.在调用java的SimpleDateFormat类格式化。
public static void main(String[] args) throws BiffException, IOException{
String dest = "E:\\test.xls";
InputStream is = new FileInputStream(dest);
Workbook rwb = Workbook.getWorkbook(is);
Sheet rs = rwb.getSheet(0);
for(int i=1;i<rs.getRows();i++){
//注册日期
if(rs.getCell(0,i).getType() == CellType.DATE){
DateCell datec11 = (DateCell)rs.getCell(0, i);
Date date = datec11.getDate();
System.out.println(date);
}
}
rwb.close();
}
}
我虽然帖了代码,但我觉得关键应该不在代码。而是你excel文件的问题。
在你存放日期的那列,应该设置单元格格式,并且选择相应的格式。
long ss = (tempTimeLong - 70 * 365 - 17 - 2) * 24 * 3600 * 1000; //excel的那个数字是距离1900年的天数
//java 是距离1970年天数,但是明明期间只有17个闰年
//我尝试的结果要减19才能正确,原因不明
Date dss = new Date(ss); //用这个数字初始化一个Date
SimpleDateFormat formatter = new SimpleDateFormat("yyyy年MM月dd日");
String sss = formatter.format(dss);