已弃用的 getCellType 的替代方法

2022-08-31 16:22:41

我正在使用 org.apache.poi 3.15 读取 excel 文件(文件扩展名 xlsx)。

这是我的代码:

try (FileInputStream fileInputStream = new FileInputStream(file); XSSFWorkbook workbook = new XSSFWorkbook(file)) {
    XSSFSheet sheet = workbook.getSheetAt(0);
    Iterator<Row> rowIterator = sheet.iterator();
    while (rowIterator.hasNext()) {
        Row row = rowIterator.next();

        Iterator<Cell> cellIterator = row.cellIterator();
        while (cellIterator.hasNext()) {
            Cell cell = cellIterator.next();
            switch (cell.getCellType()) {
                case Cell.CELL_TYPE_NUMERIC:
                    System.out.print(cell.getNumericCellValue() + "(Integer)\t");
                    break;
                case Cell.CELL_TYPE_STRING:
                    System.out.print(cell.getStringCellValue() + "(String)\t");
                    break;
            }
        }
        System.out.println("");
    }
} catch (Exception e) {
    e.printStackTrace();
}

我收到一条已弃用的警告。谁能告诉我替代方案?cell.getCellType()


答案 1

接受的答案显示了弃用的原因,但缺少命名替代项:

CellType    getCellTypeEnum()

其中 是描述单元格类型的枚举。CellType

计划重命名回 POI 4.0。getCellTypeEnum()getCellType()


答案 2

您可以使用:

cell.getCellTypeEnum()

为了进一步比较细胞类型,您必须按如下方式使用CellType:-

if(cell.getCellTypeEnum() == CellType.STRING){
      .
      .
      .
}

您可以参考文档。它非常有帮助:-

https://poi.apache.org/apidocs/org/apache/poi/ss/usermodel/Cell.html


推荐