Neue Functionsnamen in der "Excel.au3" ?

  • Hallo zusammen. AutoIt benutze ich schon einige Zeit erfolgreich und auch ohne Probleme inclusive auch einiger Functionen aus der Excel.au3 Erweiterung. Gestern muste ich auf einigen Rechnern die AutoIt Version updaten da das Tool zum erstellen von EXE Files aus au3 Files immer Fehler meldete. Nach dem update von www.autoitscript.com schien alles wieder zu laufen. Nur leider meldeten die die Scripts mit Functionen aus der Excel.au3 immer das die Function nicht bekannt seien. Als ich mir die neue Installierte Excel.au3 angesehn habe stellte ich fest das die Functionsnamen geändert waren. So lautet die Function zum öffnen eines WorkBook nicht mehr _ExcelBookOpen() sondern jetzt _Excel_BookOpen(). Kann mir hier jemand erklären warum wieso weshalb man die Functionsnamen so geändert hat und was es damit auf sich hat.
    Leider ist auch die ins deutsch übersetzte Hilfe nicht mehr richtig. Erst wenn man das Original aufmacht sieht man das sich der umgang mit dem Excel Objct grunsätzlich geändert hat. In der alten Version war noch eine Excel.au3 Versions Nummer genannt: V 1.5 -- In der neuen Version für AutoIt 3.3.12.0 gibt es keine Versionsnummer mehr für die Excel.au3.
    Kann hier einer was dazu sagen ?

    Danke
    ;)

  • Danke Oscar für den freundlichen Hinweis. Hab ich doch glatt überlesen bei der Menge an Hinweisen die ich mit dem Versionsprung von 3.3.6.1 auf 3.3.12.0 zu lesen hatte. Tu mir leid wenn ich da unnütze fragen gestellt habe. Aber noch mal danke!!

    m.f.g.

    Der itRentner

  • so ging es mir auch mit dem Excel :)

    habe meine die Scripte abgeändert.
    Hier mal ein Beispiel zum auslesen einen Excel Sheet ins ein Array

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

    ; excel auslesen

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

    $sFilePath = "d:\"

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

    Local $oExcelapp = _Excel_Open(0,0,1,1,1)
    Local $oExcel = _Excel_BookOpen($oExcelapp, $sFilePath & $sFile)

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

    If @error = 1 Then
    MsgBox(0, "Error!", "Unable to Create the Excel Object")
    Exit
    ElseIf @error = 2 Then
    MsgBox(0, "Error!", "File does not exist - Shame on you!")
    Exit
    EndIf

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

    Local $aArray = _Excel_RangeRead($oExcel,Default,Default)
    _ArrayDisplay($aArray, "Array using Default Parameters")

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

    _Excel_BookClose($oExcel, False)
    _Excel_Close($oExcelapp, Default, True)

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

    Gruß gmmg

  • Himmel.. ich habe das Programm umgeschrieben...

    Kann es sein dass die neue Funktionen _Excel_RangeRead() sowie _Excel_RangeWrite() ARSCH-langsam sind?

    Mir schläft das Gesicht ein bei Prozessen die mit den alten Funktionen eher flutschten.

  • Nö, wenn man die neue Excel UDF richtig einsetzt, dann läuft z.B. lesen/schreiben eines Bereiches 50-100 Mal schneller!
    Zeig mal Deinen neuen Code.

  • Salü water

    Also ich hab bemerkt: Da werden gar keine Werte eingelesen. Habe dann ein Test-Programm geschrieben. Dieses zeigt mir jetzt das folgende Phänomen:

    AutoIt
    $oExcel=_Excel_Open(true)
    MsgBox(64,"errorcode",@error)
    $OpenedWorkbook=_Excel_BookOpen($oexcel,@scriptdir&"\test.xlsx")
    $value=_Excel_RangeRead($OpenedWorkbook,"Tabelle1","B1")
    MsgBox(0,"wert",$value)
    _Excel_BookClose($OpenedWorkbook)
    _Excel_Close($oexcel)
    while 1
    WEnd

    Wenn ich den MsgBox(64,"errorcode",@error) - Eintrag rauslösche / auskommentiere, dann kriege ich als Return Wert bei $value = 0 . (In der betr. Zelle steht aber nicht Null, sondern "VST Bezeichnung")
    Wenn ich es mit der MsgBox laufen lasse, dann funkioniert es. Etwas schräg das ganze. Kann es sein dass _Excel_Open() zu lange dauert und dass ich da einen "wait"-befehl einbauen muss?

  • Probier mal das hier:

    Code
    #include <Excel.au3>
    $oExcel = _Excel_Open(True)
    MsgBox(64, "Open", "@error: " & @error & ", @extended: " & @extended)
    $oWorkbook = _Excel_BookOpen($oExcel, @ScriptDir & "\test.xlsx")
    MsgBox(64, "BookOpen", "@error: " & @error & ", @extended: " & @extended)
    $value = _Excel_RangeRead($oWorkbook, "Tabelle1", "B1")
    MsgBox(64, "RangeRead", "@error: " & @error & ", @extended: " & @extended)
    _Excel_BookClose($oWorkbook)
    _Excel_Close($oExcel)
  • Guten Morgen

    kann mir einer sagen wo ich den die aktuellen Excel UDF herbekomme ist leider nirgends zu finden.

    Gruss mcbaldrian

    Solange
    du den anderen sein Anderssein nicht verzeihen kannst, bist du noch weit ab vom
    Wege der Weisheit.

  • kann mir einer sagen wo ich den die aktuellen Excel UDF herbekomme ...

    Laut Excel_UDF wird die 'neue' Excel.au3 ab AutoIt 3.3.12.0 (oder neuer) standardmäßig mitgeliefert.

    Siehe Verzeichnis ..\AutoIt3\Include

    86598-musashi-c64-png

    "Am Anfang wurde das Universum erschaffen. Das machte viele Leute sehr wütend und wurde allenthalben als Schritt in die falsche Richtung angesehen."

  • Oh mann.... DANKE

    Ja da steht es Sorry

    An manchen Tagen sollte mann im Bett liegen bleiben :)

    gruss mcbaldrian

    Solange
    du den anderen sein Anderssein nicht verzeihen kannst, bist du noch weit ab vom
    Wege der Weisheit.