类型不匹配:无法从CellType转换为int

时间:2019-04-29 08:10:54

标签: apache-poi

我正在开发具有以下错误的自动化测试代码:

Type mismatch: cannot convert from CellType to int.

请问我该怎么办?

public static String cellToString(HSSFCell cell) {
        // TODO Auto-generated method stub

        int type;
        Object result;
        type = cell.getCellType();

        switch (type) {

        case 0 : // numeric value in Excel
            result = cell.getNumericCellValue();
            break;
        case 1 : //String value in Excel
            result = cell.getStringCellValue();
            break;
            default:
                throw new RuntimeException("No support for this of cell");
        }
        return result.toString();
}

1 个答案:

答案 0 :(得分:1)

CellTypeenum,而不是整数。 type变量的类型应为CellType,并且您的开关应如下所示:

CellType type = cell.getCellType();
switch (type) {
    case CellType.NUMERIC : // numeric value in Excel
        result = cell.getNumericCellValue();
        break;
    case CellType.STRING : //String value in Excel
        result = cell.getStringCellValue();
        break;
        default:
            throw new RuntimeException("No support for this of cell");
    }

或者,您可以使用Enum#ordinal(),它返回枚举值的序数整数,但是上面的示例更可取。

编辑:还请参见this answer,了解如何使用Formatter而不是switch以字符串形式获取单元格值。