Apache POI在Excel中查找值

时间:2011-09-29 10:37:29

标签: excel apache-poi poi-hssf

我有Excel文件和一些内容,来自外部源(数据库,文件,等等)。 我在Excel中遇到数字单元格的问题-getNumericValue为任何单元格返回double值,无论其格式化的值如何。 外部源返回数字的字符串表示,即它可以返回“301”和“301.0”,这些是不同的值,并且我不知道在哪种情况下哪种类型。 但是如果我在Excel文件中有“301”,则getNumericValue方法将始终返回“301.0”,因此如果我需要比较来自外部源和excel的值,excel中的“301”将与来自外部源的“301”不同,因为它们会有不同的字符串表示。

长话短说,你能告诉我在Excel中查看单元格值的字符串表示的工作方式吗?我只有HSSF *课程可供使用。

3 个答案:

答案 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