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