处理#REF!使用 apache poi 来自 excel 的单元格
Handle #REF! cell from excel using apache poi
我需要处理#REF!来自我的 excel 的单元格,我在哪里得到 #REF!我需要 return 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()));
}
}
它不会进入 else if 条件。它抛出
Cannot get a NUMERIC value from a STRING cell
请帮我解决这个问题。
这对我有用!
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 是为数据结构定义的对象。
我需要处理#REF!来自我的 excel 的单元格,我在哪里得到 #REF!我需要 return 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()));
}
}
它不会进入 else if 条件。它抛出
Cannot get a NUMERIC value from a STRING cell
请帮我解决这个问题。
这对我有用!
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 是为数据结构定义的对象。