Seite 1 von 1

Unterschiedliche Datentypen korrekt anzeigen (Java)

Verfasst: Mi, 29.04.2009 11:59
von Viper612
Hi zusammen,

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);
Grüße
Kai

Re: Unterschiedliche Datentypen korrekt anzeigen (Java)

Verfasst: Do, 30.04.2009 15:57
von Viper612
OK, anderer Ansatz:

wie kann ich nur den reinen Inhalt einer Zelle ändern, ohne dass sich die Formatierung einer Zelle ändert. Bei meiner oben beschriebenen Lösung habe ich ja immer einen Objekt-Typen. Gibt es da eine Möglichkeit?

Grüße und schönen Maifeiertag!
Kai

Re: Unterschiedliche Datentypen korrekt anzeigen (Java)

Verfasst: Fr, 01.05.2009 10:37
von hol.sten
Vielleicht hilft dir dies hier weiter: http://user.services.openoffice.org/en/ ... =45&t=1844
Das zweite Sourcecode-Beispiel enthält verschiedene Datenmanipulationen in einem Calc-Spredsheet.

Re: Unterschiedliche Datentypen korrekt anzeigen (Java)

Verfasst: Mi, 06.05.2009 12:06
von Viper612
Hi zusammen,

danke für den Tip, leider hat es nicht wirklich weiter geholfen.

Die Lösung für die Datumsangaben war, dass diese Werte als Double übertragen werden mussten. Mit ein wenig Rumrechnen, da Java vom 1.1.1970 aus rechnet. Die Zielzelle muss dann entsprechend als Datum mit/ohne Zeit formatiert sein.

Den Überlauf bei Integer konnte ich noch nicht lösen.

So far.
Kai