如何将Excel单元格中的数字字符串读入字符串(而不是数字)?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (43)
  1. 我有EXCEL文件,内容如下:
- A1: SomeString
- A2: 2

所有字段都设置为字符串格式。

  1. 当我使用POI在java中读取文件时,它告诉我们A2是数字单元格格式。
  2. 问题是A2中的值可以是2或2.0(我希望能够区分它们),所以我不能只使用.toString()

如何将值读取为字符串?

提问于
用户回答回答于

我也有同样的问题。我做了cell.setCellType(Cell.CELL_TYPE_STRING);在读取字符串值之前,无论用户如何格式化单元格,都解决了这个问题。

用户回答回答于

我不认为当你问这个问题时,我们又回到了这节课,但是今天有一个简单的答案。

想要做的是使用DataFormat类。传递给这个单元格,它会尽最大努力返回一个字符串,其中包含Excel将为该单元格显示的内容。如果你给它一个字符串单元格,你就会得到它。如果将一个数字单元格传递给应用了格式规则的数字单元格,它将根据它们格式化数字,并将字符串返回。

对于你的情况,我假设数字单元格有一个适用于它们的整数格式规则。如果要求DataForMatter对这些单元格进行格式化,它将返回一个包含整数字符串的字符串。

另外,注意很多人建议cell.setCellType(Cell.CELL_TYPE_STRING),但是ApachePOI JavaDocs非常清楚地声明你不应该这样做!

扫码关注云+社区