为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

qq_遁去的一_1 2019-11-26 10:41:34
我有这样的内容的Excel文件:所有字段均设置为字符串格式。A1:SomeStringA2:2当我使用POI读取Java中的文件时,它表明A2为数字单元格格式。问题在于A2中的值可以是2或2.0(并且我希望能够区分它们),所以我不能只使用.toString()。如何将值读取为字符串?
查看完整描述

3 回答

?
绝地无双

TA贡献1946条经验 获得超4个赞

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


查看完整回答
反对 回复 2019-11-26
?
四季花海

TA贡献1811条经验 获得超5个赞

当您提出问题时,我认为我们没有上过这个课,但是今天有一个简单的答案。


您要做的是使用DataFormatter类。您为此传递一个单元格,它会尽力返回一个字符串,其中包含Excel将对该单元格显示的内容。如果将字符串单元格传递给它,则将字符串取回。如果您向其传递一个应用了格式设置规则的数字单元格,它将根据它们格式化数字并返回字符串。


对于您的情况,我假设数字单元格已应用整数格式设置规则。如果您要求DataFormatter格式化这些单元格,它将返回一个包含整数字符串的字符串。


另外,请注意,很多人建议这样做cell.setCellType(Cell.CELL_TYPE_STRING),但是Apache POI JavaDocs清楚地表明您不应该这样做!进行该setCellType调用将导致格式设置松散,因为javadocs解释了将格式转换为剩余格式的唯一方法是使用DataFormatter类。


查看完整回答
反对 回复 2019-11-26
  • 3 回答
  • 0 关注
  • 1519 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信