如何将Excel单元格中的数字字符串读作字符串(而不是数字)?
2022-08-31 07:19:05
-
我有包含此类内容的excel文件:
A1:一些弦
A2:2
所有字段都设置为字符串格式。
当我使用POI在java中读取文件时,它告诉A2是数字单元格格式。
- 问题是A2中的值可以是2或2.0(我希望能够区分它们),所以我不能只使用。
.toString()
如何以字符串形式读取值?
我有包含此类内容的excel文件:
A1:一些弦
A2:2
所有字段都设置为字符串格式。
当我使用POI在java中读取文件时,它告诉A2是数字单元格格式。
.toString()
如何以字符串形式读取值?
我有同样的问题。我在读取字符串值之前做了,无论用户如何格式化单元格,这都解决了问题。cell.setCellType(Cell.CELL_TYPE_STRING);
我不认为当你问这个问题时,我们有这个课程,但今天有一个简单的答案。
您要做的是使用 DataFormatter 类。您将此单元格传递给它,它会尽力返回一个字符串,其中包含 Excel 将为该单元格显示的内容。如果向它传递一个字符串单元格,则会取回字符串。如果您向它传递一个应用了格式规则的数字单元格,它将根据它们设置数字格式并返回字符串。
对于您的情况,我假设数字单元格应用了整数格式规则。如果您要求 DataFormatter 设置这些单元格的格式,它将为您提供一个包含整数字符串的字符串。
另外,请注意,很多人建议这样做,但是Apache POI JavaDocs非常清楚地表明你不应该这样做!执行调用将松散格式,因为javadocs解释说,转换为具有剩余格式的字符串的唯一方法是使用DataFormatter类。cell.setCellType(Cell.CELL_TYPE_STRING)
setCellType
使用此类的简单示例:
DataFormatter dataFormatter = new DataFormatter();
String formattedCellStr = dataFormatter.formatCellValue(cell);