Open Office Calc öffnen und in Zeile / Spalte schreiben.

  • Hallo zusammen,

    bisher konnte ich leider keine OO-UDF finden, bzw. nicht die Funktion, die ich benötige.

    Ich müsste lediglich eine XLS oder XML wie auch immer, öffnen und in bestimmte Zellen schreiben.
    Also zB A22, F4 usw. Diese müsste ich aus einem Input auslesen.

    Letzteres ist aber nicht das Problem, wie schreibe ich in die Zellen? =(

    Hat da eventuell jemand einen Anhaltspunkt? Es müsste unbedingt OpenOffice sein.
    Wenn es KEINE andere Möglichkeit gibt, könnte ich eventuell auf den Artbeits-PC mit Office 2010 wechseln, geht es denn da?

  • Für Open Office Calc gibt es UDFs im engl. Forum z.B. diese hier .
    Aber wenn Du Microsoft Excel statt Open Office verwendest, dann geht das mit dem eingebauten Excel UDF sehr gut.

  • Hi,

    Zitat

    isher konnte ich leider keine OO-UDF finden, bzw. nicht die Funktion, die ich benötige.

    was daran liegt, dass du nicht in der Lage bist, Foren-Suchfunktionen oder eine beliebige Suchmaschine zu benutzen...
    Wenn man nicht weiss, WIE man suchen muss ist es besser zu fragen, als davon auszugehen, dass einem der "Arm aus der Sonne gelegt wird!"

    Hier gibts bspw. OO-Calc-Funktionen incl. einer Demo....

  • Ich habe noch das Problem, dass ich beim Einfügen einer Zahl in eine Zelle
    ( _OOoCalc_WriteCell ($oCurCom, 0, 123456, 3, 1) ) die Formatierung "verliere".
    Grundsätzlich wird ein ' der Zahl vorangestellt.

    Ich finde keinen Ansatz, bin für jedenTipp dankbar !

    OO: 3.4.1
    AutoIt: 3.3.8.1
    XP

    Holger

    Einmal editiert, zuletzt von 80x25 (16. Februar 2013 um 00:40)

  • Hallo Holger,

    genau wegen dieser und auch anderer Einschränkungen habe ich mir meine eigene Funktionssammlung geschrieben.

    Der Kollege, dessen UDF du benutzt, geht stillschweigend davon aus, dass grundsätzlich nur TEXT in eine Zelle eingefügt wird.
    Keine Zahlen, keine Formeln usw...


    Wenn du nur Werte, also ein VALUE einfügen möchtest, ändere die Funktion _OOoCalc_WriteCell () folgendermassen ab:

    Spoiler anzeigen
    [autoit]

    Func _OOoCalc_WriteCell($oCurCom, $Worksheet, $data, $sRow, $sColumn)
    $CellAddress = CHR($sColumn + 64) & $sRow

    [/autoit] [autoit][/autoit] [autoit]

    If NOT IsObj($oCurCom) Then Return SetError(1, 0, 0)
    $Sheets = $oCurCom.GetSheets()
    $SheetComponent = $Sheets.GetByName($Worksheet)
    $CellComponent = $SheetComponent.GetCellRangeByName($CellAddress)
    $CellComponent.value() = $data ;***********************hier geändert************
    $CellValue = $CellComponent.getstring()
    MsgBox(0,$CellAddress,$CellValue)
    Return
    EndFunc

    [/autoit]

    Damit sollten nur Werte eingefügt werden, für Formeln, Text usw. musst du die "UDF" entsprechend erweitern bzw. umschreiben.

    Oder probier einfach mal meine "Funktionssammlung", dort kann man nämlich beim Schreiben/Lesen einer Zelle das Format angeben...

  • Hallo Andy, vielen Dank!

    Gestern Nacht habe ich deine Funktionssammlung schon gesehen - aber irgendwie waren da ein paar entscheidende Synapsen bereits im Tiefschlaf...

    In deiner FS ist alles drin, was ich brauche (und mehr)!
    Werde das Ganze jetzt mal in Ruhe durcharbeiten.

    Nochmals vielen Dank,
    Holger

  • Wirklich klasse!

    Eine Frage noch, vielleicht habe ich es ja nur übersehen...

    Gibt es eine elegante Lösung für ein "save as" mit direktem Wechsel in das neue Dokument? Analog zu _ExcelBookSaveAs...

    Habe es jetzt mit
    _OOStoreBook("neue datei", "MS Excel 97")
    _OOCloseBook()
    _OOOpenBook("neue datei")
    gelöst.

  • Zitat

    Habe es jetzt mit
    _OOStoreBook("neue datei", "MS Excel 97")
    _OOCloseBook()
    _OOOpenBook("neue datei")
    gelöst.

    :thumbup:
    mach daraus einfach eine Funktion..._OOSaveASBook($dateiname,$format), und häng diese Funktion hinten an den Thread an...dann haben alle etwas davon ;)

  • Zitat

    mach daraus einfach eine Funktion..._OOSaveASBook($dateiname,$format), und häng diese Funktion hinten an den Thread an...dann haben alle etwas davon ;)


    davon wird's leider auch nicht schöner... :wacko:
    Aber mal sehen, was mir noch so einfällt.