# [XLS]Strings in Excel-Tabelle schreiben (poi)



## Netzgeist (12. Okt 2011)

Hallo,
ich versuche gerade mit der Bibliothek Apache POI mehrere Strings in eine Excel-Tabelle zu schreiben. Dazu brauche ich eine handlich Aufrufbare Methode auf die später recht oft zurückgegriffen wird. Das ganze sieht im Moment so aus:


```
public void fill_content(String filename, 
                             int sheetindex,
                             int zeile,
                             int spalte,
                             String content)
            throws FileNotFoundException, IOException {
        
        File file = new File(filename);
        
        
        FileInputStream in = new FileInputStream(filename);
        HSSFWorkbook wb = new HSSFWorkbook(new POIFSFileSystem(in));
        HSSFSheet sheet = wb.getSheetAt(sheetindex);
        
        HSSFRow row = sheet.createRow(zeile);
        HSSFCell cell = row.createCell(spalte);
        cell.setCellValue(content);        
        
        FileOutputStream fos = new FileOutputStream(file);
        wb.write(fos);
        fos.close();
    }
```
 

```
public static void main(String args[]) throws FileNotFoundException, IOException {
        FillTable f = new FillTable();
        f.fill_content("foo.xls", 0, 0, 0, "x0y0");
        f.fill_content("foo.xls", 0, 0, 1, "x0y1");
        f.fill_content("foo.xls", 0, 1, 0, "x1y0");
    }
```

Die (bestehende) Tabelle wird geöffnet, es wird an der richtigen Stelle geschrieben. Der Aufruf funktioniert dennoch nicht. Rufe ich die Methode mehrfach auf wie im Beispiel, werden nicht alle Einträge geschrieben. Ich versteh nicht ganz warum, ich glaube mich strikt an die API gehalten zu haben. Wäre nett wenn jemand den Fehler findet


----------



## fastjack (12. Okt 2011)

```
HSSFRow row = sheet.createRow(spalte);
HSSFCell cell = row.createCell(zeile);
```

muß das nicht eigentlich so sein:


```
HSSFRow row = sheet.createRow(zeile);
HSSFCell cell = row.createCell(spalte);
```

Kann POI schon mit int? Ich mußte damals immer noch nach short casten, oder gleich short nutzen.


----------



## Netzgeist (12. Okt 2011)

Hallo,
recht hast du. Hab das mal entsprechend umsortiert. Und ja, du kannst einfach nen integer nehmen. Nach short zu casten löste mein Problem btw nicht ;D


----------

