11
votes

Appeler le script Python d'Excel / VBA

J'ai un code Python qui lit 3 arguments (scalaires) et des fichiers texte, puis me renvoie un vecteur de double. Je veux écrire une macro dans VBA pour appeler ce code Python et écrire les résultats dans l'une des mêmes feuille Excel. Je voulais savoir quel était le moyen le plus simple de le faire, voici quelques affaires que j'ai trouvées:

  • Appelez la fonction Shell () dans VBA, mais cela ne semble pas si facile d'obtenir la valeur de retour.

  • enregistre le code Python en tant qu'objet COM et l'appelez de VBA -> Je ne sais pas comment faire cela, donc si vous avez des exemples, ce serait plus que le bienvenu

  • Créez un outil personnalisé dans une boîte à outils personnalisée, dans VBA Créez un objet de géotraitement, puis AddTooolbox, puis nous pouvons utiliser l'outil personnalisé directement via l'objet géoproducteur, mais c'est quelque chose aussi bien que je ne sais pas comment je ne sais pas comment je ne sais pas comment faire ..

    TOUT TIPS?


2 commentaires

Pour que la commande shell fonctionne, regardez ici: Stackoverflow.com/Questtions/1439200/...


J'utilise une "classe de passerelle". Considérée comme une passerelle car elle ouvre le monde riche de l'écosystème Python au développeur Excel VBA ExcelDevelopmentplatForm.blogspot.com/2018/06/...


6 Réponses :


4
votes

Devez-vous appeler le code Python comme une macro? Vous pouvez utiliser les crochets COM dans le script Python pour diriger Excel et éviter d'utiliser une autre langue: xxx


1 commentaires

Bonjour Katrielaalex, Eh bien, j'ai besoin de pouvoir exécuter ce code à partir d'Excel, cliquez simplement sur un bouton sur lequel j'ignais une macro. Cela me permet d'appeler Excel de Python mais je veux faire le contraire.



17
votes

Suivez ces étapes avec soin

  1. Allez à Activerestate et obtenez ActivePyThon 2.5.7 installateur MSI.
    J'avais des problèmes d'enfer dll avec 2.6.x li>
  2. Installer dans votre machine Windows LI>
  3. Une fois que l'installation est une invite de commande ouverte complète et accédez à p>

    C: \ python25 \ lib \ sites-packages \ Win32ComeXT \ AxScript \ Client P> blockQuote> li>

  4. exécuté \> python pyscript.py code> Vous devriez voir Message enregistré: Python P> LI>

  5. aller à MS Bureau Excel et Ouvrir la feuille de calcul p> li>

  6. Aller à Outils> Macros> Visual Basic Editor Li>
  7. Ajoutez une référence à la commande Microsoft Script Control fort> text alt li>
  8. ajoutez un nouveau formulaire utilisateur. Dans l'userForm Ajouter un CommandButton LI>
  9. Basculez vers l'éditeur de code et insérez le code suivant P>

    Dim With Atouffent Pyscript comme Msscripttrol.scriptControl p>

    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
    


1 commentaires

Ce n'est pas gratuit pour une utilisation de la production



3
votes

Voici un bon lien pour Excel de / à Python Utilisation:

continuum.io/Undre-excel

Mentions Xlwings, Datanitro, Expy, Pyxll, Xlloop, OpinPyxl, XLRD, XLSXWriter, XLWT

J'ai aussi trouvé que ExcelPython est en cours de développement actif.

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

    2.

    Ce que vous pouvez faire avec VBA + Python suit:

    Compilez vos scripts PY qui prennent des entrées et génèrent des sorties sous forme de fichiers texte ou de console. Ensuite, VBA préparera l'entrée pour PY, appelez le script PY pré-compilé et lisez sa sortie.

    3.

    Considérez Google Docs, OpenOffice ou LibreOffice qui prennent en charge les scripts Python.

    Cela suppose que les options disponibles avec les interfaces de script COM ou MS ne satisfont pas à vos besoins.


    Ce n'est pas une approche gratuite, mais il convient de mentionner (figurant dans Forbes et New York Times):

    https://datanitro.com


    Ce n'est pas gratuit pour une utilisation commerciale:

    pyxll - Excel Adidin qui permet aux fonctions écrites dans Python d'être appelées à Excel.


0 commentaires

0
votes

Il y a un tutoriel sur CodeProject sur la façon de faire cela.

voir http: //www.codeproject .Com / Articles / 639887 / Calling-Python-Code-de-Excel-with-ExcelPython .


0 commentaires

0
votes

Une autre source open source Python-Excel dans l'outil COM de processus Com. Cela permet d'exécuter des scripts Python d'Excel de manière étroitement intégrée.

https://pypi.python.org/pypi/python -Pour-Excel / Beta,% 201.1


0 commentaires

1
votes

Mise à jour 2018

XLWINGS est une bibliothèque Python sous licence BSD qui facilite l'appel à Python d'Excel et de vice Versa.

  • Scripting : automatisez / interagissez avec Excel de Python à l'aide d'une syntaxe proche de VBA.
  • macros : remplacez vos macros VBA désordonnées avec un code Python propre et puissant.
  • udfs : Écrivez les fonctions définies par l'utilisateur (UDF) dans Python (Windows uniquement).

  • Installation

  • QuickStart


0 commentaires