在Excel中查找Apache POI提取值

我有Excel文件和一些内容,来自外部来源(数据库,文件,无论)。 我在Excel中遇到数字单元格的问题-getNumericValue返回任何单元格的double值,不pipe格式如何。 外部来源返回数字的string表示forms,即它可能返回“301”和“301.0”,这些是不同的值,我不知道哪种types可能在哪种情况下。 但是,如果我在Excel文件中有“301”,getNumericValue方法将总是返回“301.0”,所以如果我需要比较来自外部源和Excel的值,Excel中的“301”将与来自外部源的“301”因为它们将具有不同的string表示。

长话短说,你能告诉我的工作方式来获取单元格的值的string表示,因为它看起来在Excel中? 我只有HSSF *类可供使用。

你想要DataFormatter类 。 这些句柄根据应用的格式化规则来格式化单元格的内容。 它应该基本上给你什么Excel显示

基于另一个线程,你可以设置单元格的types为string,然后获取其值

cell.setCellType(Cell.CELL_TYPE_STRING); 

当我得到一个数字超过15位的数字时,我尝试了这种方法,它的function就像一个魅力。

不要比较string,而是比较double:

 String excelDouble=301.0; String external="301"; Double externalDouble=Double.parseDouble(external); externalDouble.equals(excelDouble); //return true