Aufruf von Python-Skript von Excel / Vba

Ich habe einen Python-Code, der 3 Argumente (Skalare) und Textdateien liest und dann mir einen Vektor von Doppel zurückgibt. Ich möchte ein Makro in Vba schreiben, um diesen Python-Code aufzurufen und die Ergebnisse in einem der gleichen Excel-Blatt zu schreiben. Ich wollte wissen, was war der einfachste Weg, es zu tun, hier sind einige Sachen, die ich gefunden habe:

Irgendwelche Tipps?

5 Solutions collect form web for “Aufruf von Python-Skript von Excel / Vba”

Befolgen Sie diese Schritte sorgfältig

  1. Gehen Sie zu Activestate und erhalten Sie ActivePython 2.5.7 MSI-Installationsprogramm.
    Ich hatte DLL Hölle Probleme mit 2.6.x
  2. Installieren Sie in Ihrem Windows-Rechner
  3. Sobald die Installation abgeschlossen ist, öffnen Sie die Eingabeaufforderung und gehen Sie zu

    C: \ Python25 \ lib \ site-packages \ win32comext \ axscript \ client

  4. Execute \> python pyscript.py du solltest die Nachricht sehen Registriert: Python

  5. Gehen Sie zu ms office excel und öffnen Sie Arbeitsblatt

  6. Gehen Sie zu Extras> Makros> Visual Basic Editor
  7. Fügen Sie einen Verweis auf das Microsoft Script-Steuerelement hinzu Alt-Text
  8. Füge ein neues Benutzerformular hinzu. Fügen Sie in der UserForm eine Befehlsschaltfläche hinzu
  9. Wechseln Sie zum Code-Editor und fügen Sie den folgenden Code ein

    Dim WithEvents PyScript Als MSScriptControl.ScriptControl

     Private Sub CommandButton1_Click() If PyScript Is Nothing Then Set PyScript = New MSScriptControl.ScriptControl PyScript.Language = "python" PyScript.AddObject "Sheet", Workbooks(1).Sheets(1) PyScript.AllowUI = True End If PyScript.ExecuteStatement "Sheet.cells(1,1).value='Hello'" End Sub 

Ausführen. Genießen und erweitern, wie nötig

Müssen Sie den Python-Code als Makro aufrufen? Sie könnten COM-Hooks innerhalb des Python-Skripts verwenden, um Excel zu verweisen und zu vermeiden, eine andere Sprache zu verwenden:

 import win32com.client # Start Excel xlApp = win32com.client.Dispatch( "Excel.Application" ) workbook = xlApp.Workbooks.Open( <some-file> ) sheet = workbook.Sheets( <some-sheet> ) sheet.Activate( ) # Get values spam = sheet.Cells( 1, 1 ).Value # Process values ... # Write values sheet.Cells( ..., ... ).Value = <result> # Goodbye Excel workbook.Save( ) workbook.Close( ) xlApp.Quit( ) 

Hier ist ein guter Link für Excel von / zu Python Nutzung:

Continuum.io/using-excel

Erwähnt xlwings, DataNitro, ExPy, PyXLL, XLLoop, openpyxl, xlrd, xlsxwriter, xlwt

Auch fand ich, dass ExcelPython unter aktiver Entwicklung ist.

  1. https://github.com/ericremoreynolds/excelpython

2

Was Sie mit VBA + Python tun können, folgt:

Kompiliere deine py-Skripte, die Eingaben und generiere Ausgänge als Textdateien oder von der Konsole aus. Dann wird VBA die Eingabe für py vorbereiten, das vorkompilierte py-Skript anrufen und seine Ausgabe zurücklesen.

3.

Betrachten Sie Google Docs, OpenOffice oder LibreOffice, die Python-Skripte unterstützen.

Dies setzt voraus, dass verfügbare Optionen mit COM- oder MS-Script-Schnittstellen nicht Ihren Anforderungen entsprechen.


Dies ist nicht frei Ansatz, aber erwähnenswert (vorgestellt in Forbes und New York Times):

https://datanitro.com


Dies ist für den kommerziellen Gebrauch nicht kostenfrei:

PyXLL – Excel addin, das Funktionen ermöglicht, die in Python geschrieben werden, werden in Excel aufgerufen.

Es gibt ein Tutorial auf CodeProject auf, wie dies zu tun.

Siehe http://www.codeproject.com/Articles/639887/Calling-Python-code-von-Excel-with-ExcelPython .

Eine weitere Open-Source-Python-Excel im Prozess-Com-Tool. Dies ermöglicht die Ausführung von Python-Skripten aus Excel in einer eng integrierten Weise.

https://pypi.python.org/pypi/Python-For-Excel/beta,%201.1

  • Rückgabe eines externen Skripts an VBA
  • Portable Python com Server mit pywin32
  • Rückgabe von Python nach Vba
  • Wie kann ich das Python-Programm von VBA anrufen?
  • Verwenden von Python zum Programmieren von MS Office-Makros?
  • Wie lösche ich Spalten in xlwings?
  • Erstellen von Pivot-Tabelle in Excel mit Python
  • Python 3: Können wir vermeiden, einen Instanznamen zu wiederholen, wenn wir mehrere seiner Methoden anrufen?
  • Führen Sie und führen Sie ein Python-Skript von VBA aus
  • Beste Weg, um lokale Server-App mit Python zu machen
  • Paar die Daten in allen möglichen Kombinationen
  • Python ist die beste Programmiersprache der Welt.