使用POI库parsingExcel表格中的电话号码

我在使用poi libparsingexcel表格时遇到问题。 在所有的string值是正确的,但电话被转换成十进制格式,如电话号码是9876543210parsing后,我得到9.876543210E10如何得到正确的电话号码,而parsing。 我的代码是 –

while(cellIter.hasNext()){ HSSFCell myCell = (HSSFCell) cellIter.next(); String cellValue = ""; // Check for cell Type if(myCell.getCellType() == HSSFCell.CELL_TYPE_STRING){ cellValue = myCell.getStringCellValue(); } else if(myCell.getCellType() == HSSFCell.CELL_TYPE_NUMERIC){ System.out.println("cell type -- number"+myCell.getNumericCellValue()); cellValue =new Double( (myCell.getNumericCellValue()))+""; } } 

使用setCellType(Cell.CELL_TYPE_STRING)在读取之前设置列的types。

喜欢

 else if(myCell.getCellType() == HSSFCell.CELL_TYPE_NUMERIC){ // Set type as String myCell.setCellType(Cell.CELL_TYPE_STRING); // And read as String String numberAsString = myCell.getStringCellValue(); System.out.println("cell type -- number"+numberAsString); try { cellValue = Double.parseDouble(numberAsString); } catch (NumberFormatException e) { cellValue = 0; // Handle unexpected values } } 

你也可以使用一个通用的解决scheme来获取你的Excel数据,就像你在Excel中看到的一样。

apache-poi提供了DataFormatter类作为实用工具来利用Excel中出现的内容格式。 你也可以select自定义格式,一个简单的例子就是(单元格是对你的XSSFCell对象的引用):

Excel表格如下所示:

在这里输入图像描述

码:

 System.out.println(new DataFormatter().formatCellValue(cell)); 

上面的行将打印:

 50% $ 1,200 12/21/14 9886605446 

而您的正常打印将以不同的方式解释:

 0.5 1200.0 21-Dec-2014 9.886605446E9