Apache POI xlsx 读取,带有 # 值的单元格 - 错误意外的单元格类型(5)

2023-12-04

你能帮我解决这样的问题吗?

我需要将每个单元格读取为字符串值。在本例中,我使用 appache poi lib。以及标准化每个单元格的方法:

String getNormilizedCell(Cell cell){
return new DataFormatter().formatCellValue(cell);}

但是当在 .xlsx 文件中我面临这样的值:

|#N/A|#N/A|...|...|...

我收到错误【意外的细胞类型(5)】我不知道如何处理这个问题。在谷歌我找不到必要的信息。


The DataFormatter类仅处理CELL_TYPE_FORMULA, CELL_TYPE_NUMERIC, CELL_TYPE_STRING, CELL_TYPE_BOOLEAN, and CELL_TYPE_BLANK。它不处理CELL_TYPE_ERROR,即5.

您必须通过首先检测错误单元格类型然后特殊处理它来解决这个问题,请参阅错误单元格值代码:

if (cell.getCellType() == Cell.CELL_TYPE_ERROR) {
    byte errorValue = cell.getErrorCellValue();
    switch(errorValue) {
    case ERROR_DIV_0:
        return "#DIV/0!";
    case ERROR_NA:
        return "#N/A";
    case ERROR_NAME:
        return "#NAME?";
    case ERROR_NULL:
        return "#NULL!";
    case ERROR_NUM:
        return "#NUM!";
    case ERROR_REF:
        return "#REF!";
    case ERROR_VALUE:
        return "#VALUE!";
    default:
        return "Unknown error value: " + errorValue + "!";
    }
} else {
    return new DataFormatter().formatCellValue(cell);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Apache POI xlsx 读取,带有 # 值的单元格 - 错误意外的单元格类型(5) 的相关文章

随机推荐