java - 线程中的异常 "main"java.lang.IllegalStateException : Cannot get a text value from a numeric cell

标签 java apache-poi

我编写了如下代码来从 Excel 中获取值。

String CID = s1.getRow(i).getCell(0).getStringCellValue();

但在 Excel 中,第一个单元格是一个数值,但在上面的代码中我试图获取字符串单元格值。这就是为什么我收到错误:

Exception in thread "main" java.lang.IllegalStateException: Cannot get a text value from a numeric cell

任何人都可以为此提供解决方案吗?如何从Excel中获取数值?

最佳答案

任何单元格的 getCellType() 都会为您提供单元格的类型。类型为:

Cell.CELL_TYPE_BLANK
Cell.CELL_TYPE_NUMERIC
Cell.CELL_TYPE_STRING
Cell.CELL_TYPE_FORMULA
Cell.CELL_TYPE_BOOLEAN
Cell.CELL_TYPE_ERROR

最好使用 switch 语句并收集正确类型的单元格值。 存在 getNumericCellValue() 和 getStringCellValue() 函数,但使用类型更安全。

关于java - 线程中的异常 "main"java.lang.IllegalStateException : Cannot get a text value from a numeric cell,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24529486/

相关文章:

java - 使用 spock 在测试中生成对象列表

java - Apache POI setPrintArea 为 A4 页面大小

java - Apache POI 在应用 PropertyTemplate 边框时用黑色而不是所需的自定义颜色填充 XSSF 单元格

java - 如何在apache poi中将某种字体设置为fontFamily样式?

java - 货币格式 Apache POI

转换为枚举集的 Java 不可修改集

java - 当自定义绘画代码在另一个类中时不执行自定义绘画

excel - 在 Apache POI 中设置列​​宽

java - for循环和while循环总是可以互换的

java - 我的最终数组是如何被修改的?