Hallo,
ich versuche derzeit ein Programm zu schreiben, mit dem man deine Arbeitszeiten besser organisieren kann. Daher benutze ich Apache POI um in eine Excel-Datei zu schreiben. Ich bin schon relativ weit, jedoch komme ich einem Punkt nicht weiter. Mein Problem ist, dass man seine Stunden pro Tag eingibt und das Programm diese in die entsprechende Excel-Datei einträgt. Wenn ich jedoch den nächsten Tag eintragen möchte, überschreibt mir das Programm die Excel-Datei und der vorherige Tag ist gelöscht.
Mein Problem ist also, das ich nicht weiß, wie ich in die unteren Reihen der Datei schreibe.
Ich hab es schon mit dem FileInputStream versucht, jedoch hat das nicht so recht funktioniert, da ich für jeden Monat eine neue Datei anlege.
Das ist mein Code für die Erstellung und das schreiben der Excel-Datei.
Danke für die Hilfe.
ich versuche derzeit ein Programm zu schreiben, mit dem man deine Arbeitszeiten besser organisieren kann. Daher benutze ich Apache POI um in eine Excel-Datei zu schreiben. Ich bin schon relativ weit, jedoch komme ich einem Punkt nicht weiter. Mein Problem ist, dass man seine Stunden pro Tag eingibt und das Programm diese in die entsprechende Excel-Datei einträgt. Wenn ich jedoch den nächsten Tag eintragen möchte, überschreibt mir das Programm die Excel-Datei und der vorherige Tag ist gelöscht.
Mein Problem ist also, das ich nicht weiß, wie ich in die unteren Reihen der Datei schreibe.
Ich hab es schon mit dem FileInputStream versucht, jedoch hat das nicht so recht funktioniert, da ich für jeden Monat eine neue Datei anlege.
Das ist mein Code für die Erstellung und das schreiben der Excel-Datei.
Code:
public void speichern(ActionEvent event) throws Exception {
LocalDate localDate = date.getValue();
datum = String.valueOf(localDate);
do {
if(btnNextMon.isArmed()){
monClick++;
System.out.println(monClick);
}
if (btnSave.isArmed()){
saveClick++;
}
try {
XSSFWorkbook workbook = new XSSFWorkbook();
XSSFSheet sheet = workbook.createSheet("Stundenabrechnung");
sheet.setDefaultColumnWidth(18);
Map<String, Object[]> data = new TreeMap<>();
data.put("1", new Object[]{"DATUM:", " INS. ABG. STUNDEN:", " ABGR. STUNDEN:", " BESCHREIBUNG:"});
data.put("2", new Object[]{datum, ergbnis + "0", LHabg.getText(), taBes.getText()});
Set<String> keyset = data.keySet();
int rownum = 0;
for (String key : keyset) {
XSSFRow row = sheet.createRow(rownum++);
Object[] objArr = data.get(key);
int cellnum = 0;
for (Object obj : objArr) {
XSSFCell cell = row.createCell(cellnum++);
CellStyle cellStyle = workbook.createCellStyle();
cellStyle.setAlignment(HorizontalAlignment.CENTER);
cellStyle.setVerticalAlignment(VerticalAlignment.TOP);
cell.setCellStyle(cellStyle);
if (obj instanceof String) {
cell.setCellValue((String) obj);
} else if (obj instanceof Integer) {
cell.setCellValue((Integer) obj);
}
}
}
FileOutputStream outputStream = new FileOutputStream("Stundenabrechnung" + monClick +".xlsx");
workbook.write(outputStream);
workbook.close();
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("ExcelFile is created succsessfully");
}while (btnNextMon.isPressed());
}
}
Danke für die Hilfe.