我需要处理#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值
请帮助我。
答案 0 :(得分:1)
这对我有用!
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是为数据结构定义的对象。