遇到的问题:
获取单元格类型为FORMULA(公式)的值,获取失败
通过cellValue.getNumberValue()和cellValue.getStringValue()方法都获取不到该值
通过debugger,查看具体的情况
解决办法:
进过测试发现,可以通过如下方法获取到:
cell.getNumericCellValue();
获取cell的值代码,这里只获取了数字类型的值:
/**
* 获取cell中的值,这里只获取number类型的值
*
* @param cell
* @return
*/
public static Object getCellValue(Cell cell) {
Object value = null;
switch (cell.getCellTypeEnum()) { // 不同的数据类型
case STRING:
break; // 字符串类型
case NUMERIC:
double numericCellValue2 = cell.getNumericCellValue();
double numericCellValue = numericCellValue2;
value = numericCellValue;
break; // 数值类型
case BOOLEAN:
break; // 布尔类型
case FORMULA:
CellValue cellValue = evaluator.evaluate(cell);
boolean isNumeric = cellValue.getCellTypeEnum() == CellType.NUMERIC;
value = (isNumeric) ? cellValue.getNumberValue() : cellValue.getStringValue();
if (isNumeric && value.toString().equals("0.0")) {
value = cell.getNumericCellValue();
}
break; // 公式类型
case _NONE:
break; // 未知类型
case ERROR:
break; // 错误类型
case BLANK:
break; // 空白类型
}
return value;
}