我正在尝试使用POI库从Excel工作表中读取确切的字符串值。问题是,要求用户明确地将单元格类型设置为文本是不可接受的,因此excel会自动将数字输入转换为数值。
当我试图将值作为字符串返回时,会出现以下问题:
我正在尝试使用Cell.getStringValue()
功能。它抛出一个异常,因为我的字段被隐式设置为数字类型字段。
我正在检查字段类型,如果我发现这恰好是数字字段,我会将其转换为包含Double.toString
或Cell.toString()
的字符串,我的字段使用小数转换,即使它是一个圆值。
例如,我将数字'1'写入字段。它会自动转换为1个数字值。当我尝试取回字符串值时,我得到“1.0”字符串值,这是有问题的。
有没有办法在这种情况下取回原始字符串?在对此进行分类后,我可以提出的唯一解决方案是禁止在用户输入中使用小数。
答案 0 :(得分:0)
我认为ms excel在这方面是lossy。例如,如果您在单元格中键入00123
,它将自动转换为123
。这是在使用POI读取数据之前发生的,因此很遗憾POI无法访问原始值。
我认为唯一的选择是在将数据输入单元格之前将单元格格式设置为字符串。
非常讨厌!