我有Excel文件和一些内容,来自外部源(数据库,文件,等等)。 我在Excel中遇到数字单元格的问题-getNumericValue为任何单元格返回double值,无论其格式化的值如何。 外部源返回数字的字符串表示,即它可以返回“301”和“301.0”,这些是不同的值,并且我不知道在哪种情况下哪种类型。 但是如果我在Excel文件中有“301”,则getNumericValue方法将始终返回“301.0”,因此如果我需要比较来自外部源和excel的值,excel中的“301”将与来自外部源的“301”不同,因为它们会有不同的字符串表示。
长话短说,你能告诉我在Excel中查看单元格值的字符串表示的工作方式吗?我只有HSSF *课程可供使用。
答案 0 :(得分:3)
你想要DataFormatter class。句柄根据应用于它的格式规则格式化单元格的内容。它应该基本上给你显示Excel显示的内容
答案 1 :(得分:2)
基于another thread 您可以在获取其值之前将单元格的类型设置为字符串
cell.setCellType(Cell.CELL_TYPE_STRING);
当我获得一个超过15位小数的数字时,我尝试过这种方法,它就像一个魅力。
答案 2 :(得分:0)
不要比较字符串,而是比较双倍:
String excelDouble=301.0;
String external="301";
Double externalDouble=Double.parseDouble(external);
externalDouble.equals(excelDouble); //return true