我编写了如下代码来从Excel中获取值。
String CID = s1.getRow(i).getCell(0).getStringCellValue();
但是在excel中,第一个单元格是一个数值,但在上面的代码中我试图获取String单元格值。这就是我收到错误的原因:
Exception in thread "main" java.lang.IllegalStateException: Cannot get a text value from a numeric cell
任何人都可以为此提供解决方案。如何从excel中获取数值?
答案 0 :(得分:3)
任何单元格的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()函数,但它对类型更安全。
答案 1 :(得分:0)
我不确定,但我认为存在getNumericalCellValue()
或getIntegerCellValue()
会返回您想要的内容。
答案 2 :(得分:0)
在单元格中将撇号添加为该数字的前缀,自动将其转换为文本。它对我有用
答案 3 :(得分:0)
首先检查单元格类型,然后获取其值。
row.getCell(index).getCellType();
Number ==> row.getCell(index).getNumericCellValue();
String ==> row.getCell(index).getStringCellValue();
答案 4 :(得分:0)
你应该使用它=>
String CID = new BigDecimal(s1.getRow(i).getCell(0).getNumericCellValue()).toString();
答案 5 :(得分:0)
String unitPrice = new Float(wb.getSheetAt(0).getRow(0).getCell(7).getNumericCellValue())。toString();
注意:如果值存储在excel文件中的数字类型中,则这是获取字符串中数据的最佳方法。 我们从第一行的第7个单元格获取数据。
答案 6 :(得分:0)
final DataFormatter df = new DataFormatter();
final XSSFCell cell = row.getCell(cellIndex);
String valueAsString = df.formatCellValue(cell);
这可能有帮助