2016-06-22 11 views
1

Notwendigkeit, '120%' Wert von Excel in Java mit Apache POI zu extrahieren. Ich habe versucht, mit CELL_TYPE_NUMERIC und CELL_TYPE_STRING was fehlgeschlagen und das Ergebnis war 1,2 statt 120%.Wie liest man Eingaben aus Excel in Java?

N: mit Apostrophe (') vor 120% funktioniert, aber bitte eine andere Arbeit um

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") 
+1

relevant Stück Code sorgen. – ManishChristian

+0

@ManishChristian if (row.getCell (j)! = Null) { \t if (row.getCell (j) .getCellType() == row.getCell (j) .CELL_TYPE_NUMERIC) \t { \t \t System.out.print (row.getCell (j) .toString()); \t} \t else if (row.getCell (j) .getCellType() == row.getCell (j) .CELL_TYPE_STRING) \t { \t \t strCellValue = \t \t System.out.print (row.getCell (j) .toString()); \t} } sonst System.out.print („Null“) –

+1

Könnten Sie bitte Ihren Code auf Ihre Frage innerhalb Code Klammern hinzufügen – alexbt

Antwort

0

Sie so etwas wie dies versuchen:

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()); 
    } 
} 
+0

Dies ist, was ich versuche .. Und dank @Manish –

+0

Glad zu helfen und bitte [accept] (http://stackoverflow.com/help/accepted-answer) die Antwort, damit andere wissen, dass Sie die Antwort bekommen. – ManishChristian

0

Nach der Überprüfung für die Art vorschlagen, müssen Sie nach der Art den Wert abzurufen:

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

Einfach aufrufen toString() wird nicht funktionieren. Sie Code sollte wie folgt sein:

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(); 
}