可以自己单独写个方法返回值为String型的方法将获得的HSSFCell类型转化为String再用SimpleDateFormat.parse方法转成Date。
思路是:先判断HSSFCell数据类型,excel表格中的日期不一定是标准的日期类型,所以用hssfCell.getCellType()方法获取类型,再用switch判断,若是数字类型则用HSSFDateUtil中的getJavaDate方法获取(),其他的则转成String型,实例:
private String getDate(HSSFCell hssfCell){
DecimalFormat df = new DecimalFormat("#");
if(hssfCell == null){
return "";
}
switch (hssfCell.getCellType()){
case HSSFCell.CELL_TYPE_NUMERIC:
if(HSSFDateUtil.isCellDateFormatted(hssfCell)){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
return sdf.format(HSSFDateUtil.getJavaDate(hssfCell.getNumericCellValue()));
}
return df.format(hssfCell.getNumericCellValue());
case HSSFCell.CELL_TYPE_STRING:
return hssfCell.getStringCellValue();
case HSSFCell.CELL_TYPE_FORMULA:
return hssfCell.getCellFormula();
case HSSFCell.CELL_TYPE_BLANK:
return "";
}
return "";
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
亲自测试没有问题!
要用Date型可用SimpleDateFormat.parse方法获取。
例:
SimpleDateFormat dateformat = new SimpleDateFormat("yyyy-MM-dd")
tabledto.setCreatedate(dateformat.parse(getDate(createdate)))