[erledigt]Java getDataArray

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

gschuckar
****
Beiträge: 140
Registriert: Fr, 24.02.2006 14:27

[erledigt]Java getDataArray

Beitrag von gschuckar »

Moin,
Ich möchte aus einem XSheet daten auslesen um diese dann weiter zu bearbeiten. Es handelt sich um Date, Integer und Double Werte. Die gelesenen Daten sollen nicht in ein Sheet zurückgeschrieben werden. Vielmehr werde ich daraus SQL Strings bauen, um damit diese Daten dann in eine externe Datenbank zu schreiben. Manuell funktioniert das schon. Das ist nicht das Problem. Das Problem ist:
Weil ich nicht jede cell einzeln auslesen möchte, mache ich das mit diesem Code:

Code: Alles auswählen

private void loadBatch(){
        Object[][] oDaten;
        try{
            com.sun.star.table.XCell xCell = null;
            xComponent = spreadsheetHelper.loadSpreadsheetComponent(sBatchFile);
            XSpreadsheet xSpreadsheet = spreadsheetHelper.getSpreadsheet(xComponent, "Daten");
            XCellRange cellRange = xSpreadsheet.getCellRangeByName("tblDaten");
            XCellRangeData cellData = (XCellRangeData)UnoRuntime.queryInterface(XCellRangeData.class, cellRange);
            oDaten = cellData.getDataArray();
            System.out.println("Gebe jetzt die Daten aus :");
            for(Object s: oDaten){
                System.out.println("datensatz : " + (s).toString());

            }
            }catch(Exception ex){
                Logger.debug(ex);
        }
    }   
Das scheint soweit zu funktionieren. Zum Testen, ob Daten gelesen wurden, benutze ich die for(object s: oDaten) Schleife. Es werden auch Daten geschrieben. Die sehen aber nicht so aus, wie erwartet.
System.out.println gibt aus:
datensatz : [Ljava.lang.Object;@31e2ad
datensatz : [Ljava.lang.Object;@118da51
datensatz : [Ljava.lang.Object;@a50395
datensatz : [Ljava.lang.Object;@18e400b

Erwartet hätte ich:
1 15.05.2000 287,970 4 2000
1 04.06.2000 332,556 5 2000
1 01.07.2000 370,522 6 2000
1 06.08.2000 419,539 7 2000

Wo liegt mein Denkfehler?

Danke
Gerd
Zuletzt geändert von gschuckar am Mi, 15.10.2014 16:13, insgesamt 1-mal geändert.
Karolus
********
Beiträge: 7535
Registriert: Mo, 02.01.2006 19:48

Re: Java getDataArray

Beitrag von Karolus »

Hallo

Zu Java selbst kann ich dir nicht sagen was falsch oder richtig ist - vemtl. musst du die Datensätze in einer inneren `for-Schleife` aufdröseln

aber die Methode ...getDataArray liefert ein verschachteltes Array ? von Arrays:

auch die Datumswerte in dieser Struktur werden als Float ( in Tagen seit dem 30.12.1899 zurückgegeben )
in python wäre deine DataArray ein tuple von tuple'n und sähe so aus:

Code: Alles auswählen

(
(36661.0,    287.97,    4,    2000),
(36681.0,    332.556,    5,    2000),
(36708.0,    370.522,    6,    2000),
(36744.0,    419.539,    7,    2000),
)
 
Falls hinter den ausgelesenen Daten keine echten Formeln stecken könntest du die Representationen der Datumswerte über die Methode ...getFormulaArray() erhalten
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
gschuckar
****
Beiträge: 140
Registriert: Fr, 24.02.2006 14:27

Re: Java getDataArray

Beitrag von gschuckar »

moin karolus,
Innere Schleife war das Stichwort. So gehts.
Danke für Deinen Tipp
Gruß
Gerd
Antworten