问题:这里讲的就是如何对解析后的excel进行数据的处理,此处对公式的处理
如图,
所以此处在后台解析出来的是公式,后台代码需要进行处理:
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellType;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
/**
* 得到Excel表中的值
*
* @param cell Excel中的每一个格子
* @return Excel中每一个格子中的值
*/
private static String getValue(Cell cell) {
String value = null;
switch (cell.getCellTypeEnum()) {
case FORMULA: //公式
try {
value = String.valueOf(cell.getNumericCellValue());
} catch (IllegalStateException e) {
value = String.valueOf(cell.getRichStringCellValue());
}
break;
case NUMERIC: //数值
value = String.valueOf(cell.getNumericCellValue());
break;
case STRING: //字符串
value = String.valueOf(cell.getRichStringCellValue());
break;
case BLANK: //空白值
break;
case BOOLEAN: //Boolean
value = String.valueOf(cell.getBooleanCellValue());
break;
case ERROR:
break;
case _NONE:
break;
default:
break;
}
value = switchNumeric(value);
return value;
}
private static String switchNumeric(String str) {
if (str.indexOf(".") > 0) {
str = str.replaceAll("0+?$", "").replaceAll("[.]$", "");
}
return str;
}
如果上面的switch 中的case 字符串报错,可能需要你使用JDK1.8或者更高版本的JDK。