我正在开发具有以下错误的自动化测试代码:
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();
}
答案 0 :(得分:1)
CellType
是enum
,而不是整数。 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以字符串形式获取单元格值。