Ich will 2 Spalten aus einem bestehendem Excel Sheet in ein neues kopieren. Zuerst alle Zellen der ersten Spalte des alten sheets, dann alle Zellen der zweiten Spalte des alten sheets.
Leider funktioniert das so nicht. Die erste Spalte im neuen Excel-sheet wird freigelassen, und die zweite hat alle Werte. createCell() nimmt aus irgendeinem Grund meinen columnIndex nicht an, sondern verwendet immer nur den letzten Wert des index (also 1 in diesem Fall). Falls ich jedoch 0 händisch eingebe, wird die erste Spalte befüllt. Wo liegt mein Fehler?
Java:
private static void createNewWorkBook(XSSFSheet oldSheet) {
XSSFWorkbook newWorkbook = new XSSFWorkbook();
XSSFSheet newSheet = newWorkbook.createSheet("test-sheet");
for (int columnIndex = 0; columnIndex < 2; columnIndex++) {
int rowIndex = 0;
for (Row oldRow : oldSheet) {
XSSFRow newRow = newSheet.createRow(rowIndex);
XSSFCell newCell = newRow.createCell(columnIndex);
newCell.setCellValue("Hello"); // just for test purposes
// newCell.setCellValue(oldSheet.getRow(rowIndex).getCell(columnIndex).getStringCellValue());
rowIndex++;
}
}
try {
FileOutputStream fos = new FileOutputStream(new File("CreateExcelDemo.xlsx"));
newWorkbook.write(fos);
fos.close();
} catch (
IOException e) {
e.printStackTrace();
}
}
Leider funktioniert das so nicht. Die erste Spalte im neuen Excel-sheet wird freigelassen, und die zweite hat alle Werte. createCell() nimmt aus irgendeinem Grund meinen columnIndex nicht an, sondern verwendet immer nur den letzten Wert des index (also 1 in diesem Fall). Falls ich jedoch 0 händisch eingebe, wird die erste Spalte befüllt. Wo liegt mein Fehler?