java代码怎么实现 excel导入的文本值转换成日期
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java代码怎么实现 excel导入的文本值转换成日期相关的知识,希望对你有一定的参考价值。
读取excel文件中日期内容是通过poi获取的,代码如下:
HSSFWorkbook excbook = new HSSFWorkbook(ExcFile);//获取第一个sheet页 HSSFSheet excSheet = excbook.getSheetAt(0);
//获取第一行
HSSFRow oneRow = excSheet.getRow(0);
//获取第一行的第一个表格
HSSFCell oneCell = oneRow.getCell(0);
switch (oneCell.getCellType())
case HSSFCell.CELL_TYPE_NUMERIC:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
if(HSSFDateUtil.isCellDateFormatted(oneCell))
String str = sdf.format(HSSFDateUtil.getJavaDate(oneCell.getNumericCellValue())).toString();
System.out.println(str);
break;
参考技术A 换一个读excel的jar包。Apache的那些个jar包,读excel时,时间字段之类的不太好使。
建议使用 jxl.Workbook,读出来就是yyyy/MM/dd格式。 参考技术B 用 java.text 包里的
SimpleDateFormat类 的parse方法 可以实现追问
麻烦能回答的具体点么,例如我在excel中录入的时间为2012-9-10,导入到java里就变成了41162,然后我想把41162再变成2012-9-10,怎么实现? 最好能写上代码,真的非常感谢!
追答excel里的日期型统统加引号就可以 了,
不加的话没办法的
加上引号啊,好像是不可以,由于是给客户做的,只能我们在程序里控制!不过依然感谢您的回答,非常感谢!
追答如果是这样就只能傻算了
excel的日期形式内部保存是序列形的数字,得到的方法就是 1900/1/1 =1 而后每一天加1
即1900/1/2=2 1900/1/3=3....类推
java呢 就
Calendar cld = Calendar.getInstance() ;
cld .set(1900,1,1);
cld.add(Calendar.DAY_OF_YEAR , Excel的数字);
就可以了
是啊,但是导入后变成文本值了,我想在java代码里再把数值变成日期类型!
追答poi还是jxl啊?其实excel的每一个元素都是一个对象,你设几个断点,看看是不是获取的方法错了
以上是关于java代码怎么实现 excel导入的文本值转换成日期的主要内容,如果未能解决你的问题,请参考以下文章
java怎么将excel中string类型在导入到数据库时转换成表中对应的id