POI从数字excel单元格中获取原始值



我正在尝试使用POI库从excel工作表中读取精确的字符串值。问题是,要求用户显式地将单元格类型设置为文本是不可接受的,因此excel会自动将数字输入转换为数值。

当我试图将值作为字符串返回时,出现以下问题:

  1. 我正在尝试使用Cell.getStringValue()函数。它抛出一个异常,因为我的字段被隐式地设置为一个数字类型字段。

  2. 我正在检查字段类型,如果我注意到这恰好是一个数字字段,我将其转换为具有Double.toStringCell.toString()的字符串,我的字段通过使用小数转换,即使它是一个四舍五入值。例如,我在字段中写入数字"1"。它自动转换为1数字值。当我试图返回字符串值时,我得到了"1.0"字符串值,这是有问题的。

是否有一种方法可以在这种情况下获得原始字符串?在尝试了这个之后,我能想到的唯一解决方案是禁止在用户输入中使用小数。

我认为ms excel在这方面是有损的。例如,如果您在单元格中输入00123,它将自动转换为123。这发生在使用POI读取数据之前,因此不幸的是POI无法访问原始值。

认为唯一的选择是在向单元格中输入数据之前将单元格格式设置为string。

很烦人!

最新更新