我有这样的内容的Excel文件:所有字段均设置为字符串格式。A1:SomeStringA2:2当我使用POI读取Java中的文件时,它表明A2为数字单元格格式。问题在于A2中的值可以是2或2.0(并且我希望能够区分它们),所以我不能只使用.toString()。如何将值读取为字符串?
3 回答
绝地无双
TA贡献1946条经验 获得超4个赞
我有同样的问题。我cell.setCellType(Cell.CELL_TYPE_STRING);
在读取字符串值之前做了此操作,无论用户如何格式化单元格,它都能解决问题。
四季花海
TA贡献1811条经验 获得超5个赞
当您提出问题时,我认为我们没有上过这个课,但是今天有一个简单的答案。
您要做的是使用DataFormatter类。您为此传递一个单元格,它会尽力返回一个字符串,其中包含Excel将对该单元格显示的内容。如果将字符串单元格传递给它,则将字符串取回。如果您向其传递一个应用了格式设置规则的数字单元格,它将根据它们格式化数字并返回字符串。
对于您的情况,我假设数字单元格已应用整数格式设置规则。如果您要求DataFormatter格式化这些单元格,它将返回一个包含整数字符串的字符串。
另外,请注意,很多人建议这样做cell.setCellType(Cell.CELL_TYPE_STRING),但是Apache POI JavaDocs清楚地表明您不应该这样做!进行该setCellType调用将导致格式设置松散,因为javadocs解释了将格式转换为剩余格式的唯一方法是使用DataFormatter类。
添加回答
举报
0/150
提交
取消