本文共 1907 字,大约阅读时间需要 6 分钟。
在ExcelReader类中.getStringCellValue()方法里:
public static String getStringCellValue(Cell cell) {
if(cell == null){ return "";}String strCell = "";switch (cell.getCellType()) { case HSSFCell.CELL_TYPE_STRING:strCell = cell.getStringCellValue();break;case HSSFCell.CELL_TYPE_NUMERIC:if (HSSFDateUtil.isCellDateFormatted(cell)) {// 处理日期格式、时间格式 SimpleDateFormat sdf = null; if (cell.getCellStyle().getDataFormat() == HSSFDataFormat.getBuiltinFormat("h:mm")) { sdf = new SimpleDateFormat("HH:mm"); } else {// 日期 sdf = new SimpleDateFormat("yyyy-MM-dd"); } Date date = cell.getDateCellValue(); strCell = sdf.format(date); } else if (cell.getCellStyle().getDataFormat() == 58||cell.getCellStyle().getDataFormat() == 14||cell.getCellStyle().getDataFormat() == 57||cell.getCellStyle().getDataFormat() == 31) { // 处理自定义日期格式:m月d日(通过判断单元格的格式id解决,id的值是58) SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); double value = cell.getNumericCellValue(); Date date = org.apache.poi.ss.usermodel.DateUtil .getJavaDate(value); strCell = sdf.format(date); } else { double value = cell.getNumericCellValue(); CellStyle style = cell.getCellStyle(); DecimalFormat format = new DecimalFormat(); String temp = style.getDataFormatString(); // 单元格设置成常规 if (temp.equals("General")) { format.applyPattern("#"); } strCell = format.format(value); } break; case HSSFCell.CELL_TYPE_BOOLEAN:strCell = String.valueOf(cell.getBooleanCellValue());break;case HSSFCell.CELL_TYPE_FORMULA://新加的公式类型strCell =cell.getCellFormula().toString();break;case HSSFCell.CELL_TYPE_BLANK:strCell = "";break;default:strCell = "";break;}if (strCell.equals("") || strCell == null) { return "";}if (cell == null) { return "";}return strCell;}所有日期格式都可以通过getDataFormat()值ID值来判断yyyy-MM-dd----- 14yyyy年m月d日--- 31yyyy年m月------- 57m月d日 ---------- 58HH:mm----------- 20h时mm分 ------- 32
转载于:https://blog.51cto.com/11657004/2055416