Hallo Leute,
mit dieser Methode möchte ich bliebige Spalten die als ArrayListen vorliegen in eine xlsx-Datei schreiben.
Ich kann beliebig viele ArrayListen übergeben, und das funktioniert auch - vom Prinzip her schon, die Methode unten ist nur ein "Proof of Consept" noch nicht "schön" ausgeführt..
Unten kann ich eine Typen abfrage durchführen, das hab ich nur mal für STRING ausgeführt, das geht natürlich auch für DOUBLE als mit CellType.NUMERIC
Und jetzt meine Frage:
Was mach ich mit DATUMspalten ? Ich bin irritiert, Apache POI kennt komischerweise den CellType.DATE nicht !
Ich möchte aber Datumsspalten schreiben, wie kann ich das schaffen.
mit dieser Methode möchte ich bliebige Spalten die als ArrayListen vorliegen in eine xlsx-Datei schreiben.
Ich kann beliebig viele ArrayListen übergeben, und das funktioniert auch - vom Prinzip her schon, die Methode unten ist nur ein "Proof of Consept" noch nicht "schön" ausgeführt..
Unten kann ich eine Typen abfrage durchführen, das hab ich nur mal für STRING ausgeführt, das geht natürlich auch für DOUBLE als mit CellType.NUMERIC
Und jetzt meine Frage:
Was mach ich mit DATUMspalten ? Ich bin irritiert, Apache POI kennt komischerweise den CellType.DATE nicht !
Ich möchte aber Datumsspalten schreiben, wie kann ich das schaffen.
Java:
public void writeArrayListToXLSX(File filename,ArrayList... al) throws FileNotFoundException, IOException
{
Row row;
Cell c = null;
XSSFWorkbook workbook = new XSSFWorkbook();
XSSFSheet sheet = workbook.createSheet();
for (int i=0; i<al[1].size(); i++) // über alle Reihen, also nach unten !
{
row = sheet.createRow(i); // Die i.te Reihe wird angelegt
for (int p=0; p<al.length; p++)
{
System.out.println("i:"+i+" p: "+p);
String klasse=al[p].get(0).getClass().toString(); // stellt fest welcher Art, das Array und somit die ganze Spalte ist
if (klasse.contains("String")) {
c = row.createCell(p, CellType.STRING); // Die p.te Zelle in der Reihe wird festgelegt
c.setCellValue((String) al[p].get(i)); // Cast nötig
// c.setCellStyle(style); // Die p.te Zelle (oben festgelegt) wird mit dem i.ten Element belegt
System.out.println("i:"+i+" p: "+p+" Zelle c:"+c);
}
}
}
FileOutputStream outFile = new FileOutputStream(filename);
workbook.write(outFile);
}