我正在使用 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/