braucht man eigentlich Excel um excel.au3 zu benutzen? oder läuft das auch ohne?

  • Hallo zusammen,

    hab eine bescheidene Frage. Ich wollte eine Exceltabelle öffnen und habe aus der Help die Routine kopiert! Excel include ist da! bekomme aber eine Fehlermeldung!

    "D:\Autoit\Makros\Test.au3" (16) : ==> Incorrect number of parameters in function call.:

    Local $oExcel = _Excel_BookOpen($sFilePath1)

    Local $oExcel = ^ ERROR

    Pfad stimmt eigentlich! Bekomme noch nicht mal die Messagebox mit Fehlercode!

    Muss Excel auf dem Rechner installiert sein?

  • Ja, man braucht Excel für die Excel UDF.
    Dein Aufruf von _Excel_BookOpen ist falsch. Wirf mal einen Blick in die Hilfe.
    Es gibt eine UDF mit der man eine Excel-Datei lesen bzw. schreiben kann ohne Excel installiert zu haben. Ist aber - glaube ich - etwas eingeschränkt in den Möglichkeiten.

  • Es ist keine XLSX Dateien. Es sind ganz "?" einfache .xls Dateien Excel 97

    Habe was mit ADO.NET gefunden. Dies überfordert mich aber!

    Global $oADOConnection = ObjCreate("ADODB.Connection") ; Create a connection object

    Global $oADORecordset = ObjCreate("ADODB.Recordset") ; Create a recordset object

    Global $sFilename = "D:\Autoit\ADO_Example_Excel.xls"

    Global $sADOConnectionString = 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' & $sFilename & ';Extended Properties="Excel 8.0;HDR=No"'

    Ich kann hiermit nicht soviel anfangen. Es wird auch .OPEN nicht gefunden? Bekomme eine Fehlermeldung! Bin hier ratlos?

    Auf meinem Rechner ist wohl ADO "C:\Windows\winsxs" aber ich weiß nicht wie ich das anspreche.

    Was einfacheres gibt es wohl nicht?

  • Es ist keine XLSX Dateien. Es sind ganz "?" einfache .xls Dateien Excel 97

    Das war deinem Startpost nicht zu entnehmen ;).

    Habe was mit ADO.NET gefunden. Dies überfordert mich aber!

    Abgesehen von Global $sFilename = "D:\Autoit\ADO_Example_Excel.xls" , ist es das Beispiel von water aus :

    https://www.autoitscript.com/wiki/ADO_Example_Excel

    Bei mir funktioniert es soweit !

    Es wird auch .OPEN nicht gefunden? Bekomme eine Fehlermeldung! Bin hier ratlos?

    Wie lautet den die Fehlermeldung ? :Glaskugel:

    Gruß Musashi

    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."

  • So funktioniert es bei mir:

    Download and Install: Microsoft Access Database Engine 2010 Redistributable

    ==>> HKCR\CLSID\{3BE786A0-0366-4F5C-9434-25CF162E475E}|Microsoft.ACE.OLEDB.12.0|Microsoft Office 12.0 Access Database Engine OLE DB Provider

    Siehe Zeile 14...

    AutoIt
    ;~ Global $sADOConnectionString = 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' & $sFilename & ';Extended Properties="Excel 8.0;HDR=No"'
    Global $sADOConnectionString = 'Provider=Microsoft.ACE.OLEDB.12.0;Data Source=' & $sFilename & ';Extended Properties="Excel 8.0;HDR=No"'
    Excel_ADO_test.au3

    Excel_ADO_test_SciTE_Output.png

  • Das ist ein ziemlich besch.. Thema finde ich (weil ich gerade selbst damit zu kämpfen hatte..)

    Seit dem Oktober Update ist bei mir und vielen anderen (vllt. allgemein) der Jet Treiber tot. Dazu gibt es mittlerweile auch einen Blog Beitrag: https://blogs.msdn.microsoft.com/dataaccesstech…curity-updates/

    Daher hieß es für mich auf ACE umsteigen. Allerdings bedeutete das auch: Auf allen Rechnern, auf denen das angewendet werden soll Microsoft Access Database Engine installieren. Als erstes habe ich es mit der 2016er Variante probiert. Klappte aber nicht. 2013er übersprungen und 2010er ausprobiert. Klappte nicht. Neue Fehlermeldung war jeweils, der Treiber sei nicht richtig installiert.

    Die merkwürdige Lösung habe ich hier gefunden: https://www.connectionstrings.com/the-microsoft-…-local-machine/

    Also nutze ich nun "2007 Office System Driver: Data Connectivity Components"..

    EDIT: Unten in dem Blogeintrag steht doch eine Lösung für das "Installations-Problem" bei den neueren Versionen. Das hatte ich übersehen.

    Das hier ist mein Code, mit dem ich auslese:

    Grüße autoiter

    Einmal editiert, zuletzt von autoiter (27. Oktober 2017 um 23:03)

  • Hier dasselbe noch mal mit der ADO.au3 UDF 2.1.15 BETA

    Dazu muss dann die Datei "ADO_Example_Excel.xls" in das Scriptverzeichnis kopieren und das "ADO_EXAMPLE.au3" ein wenig geändert werden.

    ADO_EXAMPLE.au3

    Ado_Dir.png

    Provider.png