Hallo zusammen,
ich habe eine vorgegebene Excel-Tabelle. Zwei Eingabefelder und ein Ausgabefeld, das (aus vereinfachungsgründen) die Inhalte der beiden Eingabefelder multipliziert. Diese komplizierte Berechnung möchte ich nicht in Java schreiben, sondern in Excel, weils da schon funktioniert. Die Eingabewerte sollen über Java in die Datei geschrieben werden, der Ausgabewert von Java ausgelesen und zurückgegeben werden.
Das Schreiben scheint schon zu funktionieren, zumindest kann ich die entsprechenden Zellen wieder auslesen und kriege die reingeschriebenen Werte.
Sind beide Werte reingeschrieben, möchte die das berechnete Produkt aus der Ausgabezelle wieder auslesen, klappt aber nicht. Ich kriege eine 0, als wäre nie etwas reingeschrieben worden. Öffne ich anschließend die Datei, steht auch nichts drin (wobei das egal ist, solange ich das richtige Ergebnis in Java kriege).
Hier nun mein Quellcode. Was da letztlich scheitert bzw. fie falsche Ausgabe ist die drittletzte Ausgabe.
Findet jemand meinen Fehler? Ich wäre schon sehr dankbar!
j.
ich habe eine vorgegebene Excel-Tabelle. Zwei Eingabefelder und ein Ausgabefeld, das (aus vereinfachungsgründen) die Inhalte der beiden Eingabefelder multipliziert. Diese komplizierte Berechnung möchte ich nicht in Java schreiben, sondern in Excel, weils da schon funktioniert. Die Eingabewerte sollen über Java in die Datei geschrieben werden, der Ausgabewert von Java ausgelesen und zurückgegeben werden.
Das Schreiben scheint schon zu funktionieren, zumindest kann ich die entsprechenden Zellen wieder auslesen und kriege die reingeschriebenen Werte.
Sind beide Werte reingeschrieben, möchte die das berechnete Produkt aus der Ausgabezelle wieder auslesen, klappt aber nicht. Ich kriege eine 0, als wäre nie etwas reingeschrieben worden. Öffne ich anschließend die Datei, steht auch nichts drin (wobei das egal ist, solange ich das richtige Ergebnis in Java kriege).
Hier nun mein Quellcode. Was da letztlich scheitert bzw. fie falsche Ausgabe ist die drittletzte Ausgabe.
Java:
excelFile = new File("flaechenberechnung.xls");
fis = new FileInputStream(excelFile);
tmpByteArrayOutputStream = new ByteArrayOutputStream();
hwb = new HSSFWorkbook(fis);
hsheet = hwb.getSheet("Tabelle1");
hrow = hsheet.createRow((short)0);
hcell = hrow.createCell(1);
hcell.setCellValue(5);
System.out.println("** "+hcell.getNumericCellValue()); //-> kommt wieder 5 raus
int rowCol2[] = cell2RowAndColumn("B2"); // [0] = row, [1] column
hrow = hsheet.createRow((short)1);
hcell = hrow.createCell(1);
hcell.setCellValue(5);
hwb.write(tmpByteArrayOutputStream);
tmpByteArrayOutputStream.close();
int rowCol[] = cell2RowAndColumn(zelle); // [0] = row, [1] column
hrow = hsheet.getRow((short)2);
hcell = hrow.getCell(1);
System.out.println(hcell.getNumericCellValue());
fis.close();
tmpByteArrayOutputStream.close();
Findet jemand meinen Fehler? Ich wäre schon sehr dankbar!
j.
Zuletzt bearbeitet von einem Moderator: