如何在Excel单元格中将数字字符串读取为字符串(不是数字)?

  1. 我有这样的内容的Excel文件:

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

    • A1:SomeString

    • A2:2

  2. 当我使用POI读取Java中的文件时,它表明A2为数字单元格格式。

  3. 问题在于A2中的值可以是2或2.0(并且我希望能够区分它们),所以我不能只使用.toString()

如何将值读取为字符串?


qq_遁去的一_1
浏览 1528回答 3
3回答

绝地无双

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

四季花海

当您提出问题时,我认为我们没有上过这个课,但是今天有一个简单的答案。您要做的是使用DataFormatter类。您为此传递一个单元格,它会尽力返回一个字符串,其中包含Excel将对该单元格显示的内容。如果将字符串单元格传递给它,则将字符串取回。如果您向其传递一个应用了格式设置规则的数字单元格,它将根据它们格式化数字并返回字符串。对于您的情况,我假设数字单元格已应用整数格式设置规则。如果您要求DataFormatter格式化这些单元格,它将返回一个包含整数字符串的字符串。另外,请注意,很多人建议这样做cell.setCellType(Cell.CELL_TYPE_STRING),但是Apache POI JavaDocs清楚地表明您不应该这样做!进行该setCellType调用将导致格式设置松散,因为javadocs解释了将格式转换为剩余格式的唯一方法是使用DataFormatter类。
打开App,查看更多内容
随时随地看视频慕课网APP