如何在Java中读取来自Excel的input?

需要使用Apache POI从Java中的Excel中提取“120%”的值。 我尝试使用CELL_TYPE_NUMERIC和CELL_TYPE_STRING失败,结果是1.2而不是120%。

N:在120%的作品前使用撇号('),但请提出另一个解决方法

if(row.getCell(j)!=null) { if(row.getCell(j).getCellType() ==row.getCell(j).CELL_TYPE_NUMERIC) { System.out.print(row.getCell(j).toString()); } else if(row.getCell(j).getCellType() == row.getCell(j).CELL_TYPE_STRING) strCellValue ==System.out.print(row.getCell(j).toString()); } } else System.out.print("null") 

你可以尝试这样的事情:

 if (cell.getCellType() == Cell.CELL_TYPE_NUMERIC) { if (cell.getCellStyle().getDataFormatString().contains("%")) { // Detect Percent Values Double value = cell.getNumericCellValue() * 100; System.out.println("Percent value = " + value.toString() +"%"); } else { Double value = cell.getNumericCellValue(); System.out.println("Non percent value = " + value.toString()); } } 

在检查types之后,您需要根据types检索值:

 if (cell.getCellType() == Cell.CELL_TYPE_STRING) { String value = cell.getStringCellValue(); } 

只要调用toString()不会工作。 你的代码应该是这样的:

 if (row.getCell(j).getCellType() == row.getCell(j).CELL_TYPE_NUMERIC) { System.out.print(row.getCell(j).getNumericCellValue() } else if (row.getCell(j).getCellType() == row.getCell(j).CELL_TYPE_STRING) { strCellValue = row.getCell(j).getStringCellValue(); }