我有一列的单元格格式是这样的:


我一直对此问题感到困惑,并且收到此错误“无法从数字单元格获取文本值”。
我如何获取包含整数值“ 2040”作为字符串的单元格,该单元格在电子表格中已设置为文本格式?

最佳答案

您要查找的课程是DataFormatter。 Excel本身通常会将数字以CELL_TYPE_NUMERIC的形式存储在文件中,并带有适当的格式设置规则以使它们按您期望的方式呈现。如果要将双精度值+格式规则转换为字符串,DataFormatter将为您完成此操作。

然后,您的代码可以如下所示:

DataFormatter fmt = new DataFormatter();

Row r = sheet.getRow(10);
Cell c = r.getCell(2, Row.RETURN_BLANK_AS_NULL);
if (c == null) {
   // There's no value in this cell
} else {
   System.out.println("Cell K2 is " + fmt.formatCellValue(c));
}

09-11 02:21