/**
* 定义时间格式化对象
*/
public static DateFormat dfDateTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
/**
* 获取Excel单元格字符串值
*
* @param cell
* Excel单元格
* @return 返回单元格的字符串值
*/
public static String getCellValue(Cell cell) {
// 定义单元格字符串值对象
String value = null;
// 判断单元格是否为空
if (cell != null) {
// 根据单元格数据类型获取字符串值
switch (cell.getCellType()) {
case Cell.CELL_TYPE_BLANK:
// 空单元格返回空字符串
value = "";
break;
case Cell.CELL_TYPE_BOOLEAN:
// 布尔型单元格返回布尔字符串
value = String.valueOf(cell.getBooleanCellValue());
break;
case Cell.CELL_TYPE_ERROR:
// 无效单元格返回空
value = null;
break;
case Cell.CELL_TYPE_FORMULA:
// 函数单元格返回函数计算结果字符串
Workbook wb = cell.getSheet().getWorkbook();
CreationHelper crateHelper = wb.getCreationHelper();
FormulaEvaluator evaluator = crateHelper.createFormulaEvaluator();
value = getCellValue(evaluator.evaluateInCell(cell));
break;
case Cell.CELL_TYPE_NUMERIC:
// 数值单元格返回数值字符串
if (DateUtil.isCellDateFormatted(cell)) {
Date theDate = cell.getDateCellValue();
value = dfDateTime.format(theDate);
} else {
value = NumberToTextConverter.toText(cell.getNumericCellValue());
}
break;
case Cell.CELL_TYPE_STRING:
// 字符串单元格返回字符串
value = cell.getRichStringCellValue().getString();
break;
default:
// 其他返回空
value = null;
}
}
// 返回单元格字符串值
return value;
}