[erledigt]Java getDataArray

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: [erledigt]Java getDataArray

Re: Java getDataArray

von gschuckar » Mi, 15.10.2014 13:23

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

Re: Java getDataArray

von Karolus » Mi, 15.10.2014 12:33

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

[erledigt]Java getDataArray

von gschuckar » Mi, 15.10.2014 11:39

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

Nach oben