folgendes Szenario: Ich möchte Daten aus einer Datenbank über Java in einem Sheet darstellen. Es werden unterschiedliche Formate (Varchar, Integer, ...) übermittelt. Diese sollen in Calc entsprechend formatiert dargestellt werden, also nicht alle stumpf als Text (mit einem Datum oder Zahlenwert kann man dann nicht mehr weiterarbeiten).
Wenn ich es nur mit Strings und Double zu tun habe, klappt alles, aber bei folgenden Datentypen habe ich Probleme:

1.) Integer: Eigentlich müsste ich mit Long arbeiten, wegen des größeren Zahlenbereichs. Packe ich in das Daten-Array aber Long rein, werden diese Daten im Calc-Sheet nicht dargestellt.
2.) Datums- und Timestampangaben: Packe ich ein java.util.date in das Daten-Array, wird überhaupt nichts mehr ins Calc-Sheet geschrieben.
Weiß jemand, wie ich diese beiden Problematiken - evtl. natürlich auch durch ein anderes Vorgehen ohne Array - korrekt in das Sheet bekomme?
Code: Alles auswählen
Object[][] aValues = new Object[rowsAnz][colAnz];
while (...) {
Object objValue = null;
objValue = ... // Erzeugung eines Strings, Integer, Double ... je nach Typ der Datenbankspalte
aValues[i][j] = objValue;
}
XCellRange xCellRange = null;
xCellRange = sheet.getCellRangeByPosition... // Bereich zuweisen
com.sun.star.sheet.XCellRangeData xData = (com.sun.star.sheet.XCellRangeData) UnoRuntime.queryInterface(com.sun.star.sheet.XCellRangeData.class, xCellRange);
xData.setDataArray(aValues);
Kai