String value=this.getValue((HSSFCell) row.getCell(position))
数字类型 时间类型 字符串类型验证没问题,
数字类型如果是1234.0会将其变成1234 如果是1234.5保存仍然保持小数位1234.5,用来解决电话号码和普通数字问题
时间类型将其格式化成了 2015-12-09 12:13:12这种格式便于保存数据库
//解决类型问题,获得数值
public String getValue(HSSFCell cell) {
String value = "";
if(null==cell){
return value;
}
switch (cell.getCellType()) {
//数值型
case HSSFCell.CELL_TYPE_NUMERIC:
if (HSSFDateUtil.isCellDateFormatted(cell)) {
//如果是date类型则 ,获取该cell的date值,并进行格式化
Date date = HSSFDateUtil.getJavaDate(cell.getNumericCellValue());
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
value = format.format(date);;
}else {// 纯数字
value = String.valueOf(cell.getNumericCellValue());
//解决1234.0 去掉后面的.0
if(null!=value&&!"".equals(value.trim())){
String[] item = value.split("[.]");
if(1<item.length&&"0".equals(item[1])){
value=item[0];
}
}
}
System.out.println(value);
break;
//字符串类型
case HSSFCell.CELL_TYPE_STRING:
value = cell.getStringCellValue().toString();
break;
// 公式类型
case HSSFCell.CELL_TYPE_FORMULA:
//读公式计算值
value = String.valueOf(cell.getNumericCellValue());
if (value.equals("NaN")) {// 如果获取的数据值为非法值,则转换为获取字符串
value = cell.getStringCellValue().toString();
}
break;
// 布尔类型
case HSSFCell.CELL_TYPE_BOOLEAN:
value = " "+ cell.getBooleanCellValue();
break;
// 空值
case HSSFCell.CELL_TYPE_BLANK:
value = "";
LogUtil.getLogger().error("excel出现空值");
break;
// 故障
case HSSFCell.CELL_TYPE_ERROR:
value = "";
LogUtil.getLogger().error("excel出现故障");
break;
default:
value = cell.getStringCellValue().toString();
}
if("null".endsWith(value.trim())){
value="";
}
return value;
}
poi excel批量导入 解决各类型的数据,布布扣,bubuko.com
原文:http://blog.csdn.net/myfmyfmyfmyf/article/details/37592731