2016-04-09 7 views
0

Ich unterrichte an diesem Wochenende selbst Apache POI. Meine letzte Aufgabe besteht darin, eine Spalte mit numerischen Werten und leeren Zellen zu erstellen und den leeren Werten Werte hinzuzufügen. Ich denke, dass ich fast so viel mit einer switch-Anweisung und setCellValues ​​erreicht habe, aber ich kann nicht scheinen, den Inhalt zu meiner Arbeitsmappe auf dem spezifischen Blatt und Spalte zurückzugeben.Wie gebe ich mit Apache POI eine bestimmte Spalte und ein Arbeitsblatt aus?

Hier ist, was ich habe unten. Die Daten werden gut in die Methode übernommen.

Random randomNum = new Random(); 
     double randomD = randomNum .nextDouble(); 


     for (Row row : sheet2) { 
      for (Cell cell : row) { 

       switch (cell.getCellType()) { 
        case Cell.CELL_TYPE_NUMERIC: 
        System.out.println(cell.getNumericCellValue()); 
         break; 
        case Cell.CELL_TYPE_BLANK: 
        cell.setCellValue(randomD); 
        FileOutputStream fileOut = new FileOutputStream("C:/Users/testtest/Desktop/Test/ProductTests.xls"); 
        wb.write(fileOut); 
        fileOut.close(); 
         System.out.println(cell.getNumericCellValue()); 
         break; 
        default: 
         System.out.println(); 
       } 
      } 
     } 

Antwort

1

Erstens: Versuchen Sie nicht, die gesamte Datei auf jeder Zelle zu schreiben, tun dies nur am Ende, wenn Sie alle Änderungen

getan haben

Zweitens: keine versuchen Sie auf die gleiche Datei zu schreiben die Sie zum Laden verwendet haben, unterstützt POI das direkte Schreiben von Änderungen (noch) nicht.

+0

Ich erkannte bald, nachdem ich das gepostet habe, dass ich nicht in der Lage sein würde, in die Datei zu schreiben, und ich könnte die Berechnungen durchführen, ohne das zu tun. Vielen Dank für Ihre Antwort. –