我正在使用Apache POI(版本3.9)框架来处理excel文件,即读取excel文件。
我遇到数字类型问题。用户可以在excel文件中用逗号或点作为小数分隔符编写一个数字,即12.34或12,34,原因各种各样。
现在,我想得到它的值(即如果它是12.34,那么我想得到12.34,或者如果它是12,34,那么我想获得12,34),但是相反POI Cell初步给我一个带点作为小数分隔符的双倍。 因此,如果单元格值为12,34,则POI Cell将给出值12.34的两倍。
这种行为不是我想要的。我想得到输入的值(12,34)。
如何避免/解决这个问题?
我在Stackoverflow中搜索了类似的问题,并尝试使用线程How can I read numeric strings in Excel cells as string (not numbers) with Apache POI?中给出的解决方案,并尝试使用替代的org.apache.poi.ss.usermodel.DataFormatter
类,它可以工作,但是当值为12时它不起作用,34和单元格类型是在Excel文件本身中定义的数字。
答案 0 :(得分:1)
如果您要验证这些数字,我建议您可以将验证字符串转换为数字以便与单元格中的值进行比较。电子表格中没有关于十进制/千位分隔符的信息。这是基于应用程序或操作系统中设置的区域设置,并且仅显示 - 它根本不存储。因此,您必须手动将数字格式化为字符串。