Als er geen Excel-functie is voor de betreffende taak, grijpen Python-programmeurs naar PyXLL.
PyXLL is een tool die de kloof overbrugt tussen Microsoft Excel en Python. Hiermee kunt u Python-code en -functionaliteit naadloos integreren in Excel-spreadsheets. Met PyXLL wordt Excel een platform voor het benutten van de bibliotheken en mogelijkheden van Python.
PyXLL fungeert als een Excel-invoegtoepassing. Je kunt het gebruiken om Python-functies en macro's rechtstreeks in de VBA-omgeving van Excel te schrijven. PyXLL fungeert dan als tolk en voert de code uit binnen Excel-cellen, waardoor er veel mogelijkheden ontstaan. Sommige hiervan omvatten het automatiseren van complexe taken, geavanceerde data-analyse en datavisualisatie.
Een overzicht van PyXLL
PyXLL werkt door een Python-interpreter uit te voeren binnen het Excel-proces. Hierdoor krijgt uw Python-code, draaiend in PyXLL, directe toegang tot Excel-gegevens en -objecten. De tool is geschreven in C++ en maakt gebruik van dezelfde onderliggende technologie als Excel. Dit betekent dat Python-code die in PyXLL wordt uitgevoerd doorgaans veel sneller is dan
Excel VBA-code.Installatie en configuratie
Om PyXLL te installeren, ga naar de PyXLL-website en download de invoegtoepassing. Zorg ervoor dat de Python-versie en de Excel-versie die u kiest overeenkomen met de versies die op uw systeem zijn geïnstalleerd. PyXLL is alleen beschikbaar voor de Windows-versie van Excel.
Wanneer het downloaden is voltooid, opent u een opdrachtprompt en voert u deze opdracht uit:
pip install pyxll
Je moet zorg ervoor dat Pip in uw systeem is geïnstalleerd om de bovenstaande opdracht uit te voeren. Gebruik vervolgens het PyXLL-pakket om de PyXLL-add-in te installeren:
pyxll install
Het installatieprogramma zal vragen of u de invoegtoepassing hebt gedownload. Voer ja in en geef vervolgens het pad op naar het zipbestand met de invoegtoepassing. Volg daarna de instructies op het scherm om de installatie te voltooien.
Aan de slag met PyXLL
Nadat u de plug-in hebt geïnstalleerd, start u Excel. Voordat het wordt gestart, verschijnt er een prompt waarin u wordt gevraagd dit te doen Proefperiode starten of Koop nu. De proefversie verloopt na dertig dagen en u moet dan een licentie aanschaffen om PyXLL te kunnen blijven gebruiken.
Klik op de Proefperiode starten knop. Hiermee wordt Excel gestart met de geïnstalleerde invoegtoepassing.
Op de PyXLL-voorbeeld Tab, Klik op de Over PyXLL knop. Hier ziet u het pad waarin u de invoegtoepassing hebt geïnstalleerd, samen met paden naar de configuratie- en logbestanden.
Het pad dat het configuratiebestand bevat, is belangrijk omdat u dat bestand later moet bewerken. Noteer dit dus.
Python-functies blootstellen aan Excel
Om een Python-functie beschikbaar te maken voor Excel als een door de gebruiker gedefinieerde functie (UDF), gebruikt u de @xl_func decorateur. Deze decorateur geeft PyXLL de opdracht om de functie bij Excel te registreren, zodat deze beschikbaar wordt voor gebruikers.
Om bijvoorbeeld een Python bloot te leggen fibonacci() functie naar Excel als UDF, kunt u de @xl_func decorateur als volgt:
from pyxll import xl_func
@xl_func
deffibonacci(n):
This is a Python function that calculates the Fibonacci sequence.
if n < 0:
raise ValueError("n must be non-negative")
elif n == 0or n == 1:
return n
else:
return fibonacci(n - 1) + fibonacci(n - 2)
Sla deze code op met de extensie .py en noteer het pad van de map waarin u het bestand opslaat.
Open nu het PyXLL-configuratiebestand in een editor en scrol omlaag naar een regel die begint met "pythonpath". Deze instelling is doorgaans een lijst met mappen waarin PyXLL zoekt naar Python-modules. Voeg het pad toe aan de map die de broncode van de Fibonacci-functie bevat.
Scroll vervolgens naar beneden naar "modules" en voeg uw module toe. Als u uw bestand bijvoorbeeld hebt opgeslagen als fibonacci.py, voeg de naam "fibonacci" toe aan de lijst:
Hierdoor worden de modulefuncties zichtbaar die gebruikmaken van de @xl_func decorateur naar Excel. Ga vervolgens terug naar Excel en ga naar PyXLL-voorbeeld Tab, Klik op de Laad PyXLL opnieuw knop om de wijzigingen in het configuratiebestand te synchroniseren. Je kunt dan de Python aanroepen fibonacci functioneren zoals elke andere Excel-formule.
U kunt zoveel functies maken als u nodig heeft en deze op dezelfde manier beschikbaar maken voor Excel.
Gegevens doorgeven tussen Excel en Python
PyXLL ondersteunt het gebruik van externe Python-bibliotheken, zoals Pandas. Hiermee kunt u gegevens uit deze bibliotheken doorgeven aan Python en omgekeerd. Dat kan bijvoorbeeld gebruik Panda's om een willekeurig dataframe te maken en geef het door aan Excel. Zorg ervoor dat Pandas op uw systeem is geïnstalleerd en probeer vervolgens deze code uit:
from pyxll import xl_func
import pandas as pd
import numpy as np
@xl_func("int rows, int columns: dataframe
", auto_resize=True)
defrandom_dataframe(rows, columns):
data = np.random.rand(rows, columns)
column_names = [chr(ord('A') + x) for x in range(columns)]
return pd.DataFrame(data, columns=column_names)
U moet hetzelfde proces volgen om deze module en zijn functies beschikbaar te maken voor Excel. Probeer dan eens te bellen met de willekeurig_dataframe functioneren zoals u zou doen met andere Excel-formules:
=random_dataframe(10,5)
U kunt het aantal rijen en kolommen naar wens wijzigen.
U kunt uw vooraf gedefinieerde dataframes op dezelfde manier doorgeven aan Excel. Het is ook mogelijk om importeer Excel-gegevens in het Python-script met behulp van Pandas.
Beperkingen van PyXLL
- Windows- en Excel-compatibiliteit: PyXLL is voornamelijk ontworpen voor Windows en werkt met Microsoft Excel op Windows. Het kan beperkte functionaliteit of compatibiliteitsproblemen hebben op niet-Windows-platforms, omdat het is geoptimaliseerd voor Windows-omgevingen.
- Implementatie: Voor het implementeren van op PyXLL gebaseerde spreadsheets voor eindgebruikers is het vereist dat Python is geïnstalleerd met minimale afhankelijkheden of dat de Python-runtime is gebundeld met de spreadsheet. Dit betekent dat gebruikers die PyXLL-aangedreven spreadsheets willen gebruiken, Python op hun machines moeten hebben geïnstalleerd.
- Leercurve: Het effectief gebruiken van PyXLL vereist enige kennis van Python-programmering en bekendheid met het objectmodel van Excel. Gebruikers die niet bekend zijn met het objectmodel van Python of Excel moeten mogelijk tijd investeren in het leren van deze concepten voordat ze de mogelijkheden van PyXLL volledig kunnen benutten.
- Licentiekosten: PyXLL is een commercieel product en afhankelijk van uw gebruik en vereisten kunnen er licentiekosten verbonden zijn aan het gebruik ervan. De kosten voor het gebruik van PyXLL zijn afhankelijk van factoren zoals het aantal gebruikers, de schaal van de implementatie en licentieovereenkomsten.
Moet u nog steeds Excel-functies gebruiken?
Het hangt af van wat je wilt bereiken. Het is altijd zinvol om native Excel-functies te gebruiken wanneer deze beschikbaar zijn. Maar voor complexere taken die de ingebouwde functies van Excel niet aankunnen, is PyXLL een uitstekende oplossing.
De Pandas-bibliotheek is een perfecte aanvulling op PyXLL met zijn analytische mogelijkheden en krachtige ondersteuning voor gegevensverwerking.