Apache POI-HSSF : Getting Decimal Instead of Text String

标签 apache text decimal apache-poi poi-hssf

我正在使用 Apache POI-HSSF 来处理 Excel 文件。

我的电子表格中有一个看起来像“115”的单元格。我验证它的格式为“文本”(设置单元格格式 -> 文本)。

但是,当我将其读为 row.getCell(0).toString()

我得到这个字符串:“115.0”

这是不正确的。我应该得到“115”,因为它被明确格式化为文本。我怎样才能得到想要的结果?单元格可以是任何内容,数字或字符,我希望与单元格中的字符串相同。谢谢

最佳答案

格式化为文本并不意味着存储为文本,它们是不同的。 Excel 已将您的单元格存储为数字,当您向 POI 询问该单元格时,您会得到一个数字单元格。

如果您询问返回的单元格是什么类型,您会发现它的类型是 CELL_TYPE_NUMERIC 而不是 CELL_TYPE_STRING

您可能想要做的是使用 DataFormatter class按照 Excel 的格式设置单元格格式。然后它就会像你期望的那样。 (单元格也将格式化为货币、百分比等)

关于Apache POI-HSSF : Getting Decimal Instead of Text String,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6232207/

相关文章:

Apache ErrorDocument 404 位于没有 .htaccess 的子目录中

php - 我如何找出哪个用户正在运行当前的 php 脚本?

objective-c - objective-c : Reading text files

jquery - 文本中的全日历去年和明年按钮

python - 类型错误 : unsupported operand type(s)s for +: 'StringVar' and 'str' //Create a text file

apache - Sonatype Nexus : Proxy from SSL using Apache

delphi - 十六进制到十进制转换器 (ESN Algo)

MySql 十进制数据类型 : not Inserting Proper Value

javascript - 是否有一个函数可以读取 ERC20 供应并在输出中给出不带小数的数字?

apache - Meteor DDP SSL/Apache 代理连接