我需要处理#REF!从我的excel单元格中获取#REF!我需要向数据结构返回0或空引号。
我尝试这样做,但是我无法成功,这是代码段:-
if (valueCell.getCellType() == Cell.CELL_TYPE_FORMULA) {
if (valueCell.getCellStyle().getDataFormatString().contains("%")) {
// Detect Percent Values
values.put(valueHeader, String.valueOf(Double.valueOf(valueCell.getNumericCellValue() * 100).intValue()) + "%");
}else if (valueCell.getCellType() == Cell.CELL_TYPE_ERROR) {
values.put(valueHeader,"");
} else {
values.put(valueHeader,String.valueOf(valueCell.getNumericCellValue()));
}
}
如果有条件的话,那就不行了。它抛出
无法从STRING单元格获得NUMERIC值
请帮我解决一下这个。
最佳答案
这对我有用!
if (valueCell.getCellType() == Cell.CELL_TYPE_FORMULA) {
switch (valueCell.getCachedFormulaResultTypeEnum()) {
case STRING:
values.put(valueHeader,"");
break;
case NUMERIC:
if (valueCell.getCellStyle().getDataFormatString().contains("%")) {
// Detect Percent Values
values.put(valueHeader, String.valueOf(Double.valueOf(valueCell.getNumericCellValue() * 100).intValue()) + "%");
}else{
values.put(valueHeader,String.valueOf(valueCell.getNumericCellValue()));
}
break;
case ERROR:
values.put(valueHeader,"");
break;
default:
System.out.println("default"); //should never occur
}
}
其中values是为数据结构定义的对象。
关于java - 处理#REF!使用apache poi从excel中获取单元格,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49880140/