Kadar za opravilo ni Excelove funkcije, programerji Pythona posežejo po PyXLL.
PyXLL je orodje, ki premosti vrzel med Microsoft Excelom in Pythonom. Omogoča vam brezhibno integracijo kode in funkcionalnosti Python v Excelove preglednice. S PyXLL Excel postane platforma za izkoriščanje knjižnic in zmogljivosti Pythona.
PyXLL služi kot dodatek za Excel. Uporabite ga lahko za pisanje funkcij in makrov Python neposredno v Excelovem okolju VBA. PyXLL nato deluje kot tolmač in izvaja kodo v celicah Excela, kar odpira številne možnosti. Nekatere od teh vključujejo avtomatizacijo kompleksnih nalog, napredno analizo podatkov in vizualizacijo podatkov.
Pregled PyXLL
PyXLL deluje tako, da izvaja tolmač Python znotraj procesa Excel. To daje vaši kodi Python, ki se izvaja v PyXLL, neposreden dostop do Excelovih podatkov in predmetov. Orodje je napisano v C++ in uporablja isto osnovno tehnologijo kot Excel. To pomeni, da je koda Python, ki se izvaja v PyXLL, običajno veliko hitrejša od Excelova koda VBA.
Namestitev in nastavitev
Če želite namestiti PyXLL, pojdite na Spletno mesto PyXLL in prenesite dodatek. Prepričajte se, da se izbrani različici Python in Excel ujemata s tistima, ki sta nameščeni v vašem sistemu. PyXLL je na voljo samo za različico Excela za Windows.
Ko je prenos končan, odprite ukazni poziv in zaženite ta ukaz:
pip install pyxll
Moraš imeti Pip nameščen v vašem sistemu za izvajanje zgornjega ukaza. Nato uporabite paket PyXLL za namestitev dodatka PyXLL:
pyxll install
Namestitveni program vas bo vprašal, ali ste prenesli dodatek. Vnesite yes in nato podajte pot do datoteke zip, ki vsebuje dodatek. Nato sledite navodilom na zaslonu, da dokončate namestitev.
Kako začeti s PyXLL
Ko namestite vtičnik, zaženite Excel. Preden se zažene, se prikaže poziv, ki vas bo pozval Začni preizkus oz Kupi zdaj. Preizkusna različica bo potekla po tridesetih dneh in takrat boste morali kupiti licenco za nadaljnjo uporabo PyXLL.
Kliknite na Začni preizkus gumb. To bo zagnalo Excel z nameščenim dodatkom.
Na Zavihek Primer PyXLL, kliknite na O PyXLL gumb. To vam bo pokazalo pot, na katero ste namestili dodatek, skupaj s potmi do konfiguracijskih in dnevniških datotek.
Pot, ki vsebuje konfiguracijsko datoteko, je pomembna, saj jo boste morali pozneje urediti, zato si jo zabeležite.
Izpostavljanje funkcij Python Excelu
Če želite funkcijo Python izpostaviti Excelu kot uporabniško definirano funkcijo (UDF), uporabite @xl_func dekorater. Ta dekorater naroči PyXLL-u, naj registrira funkcijo v Excelu, tako da je na voljo uporabnikom.
Na primer, izpostaviti Python fibonacci() v Excel kot UDF, lahko uporabite @xl_func dekorater, kot sledi:
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)
Shranite to kodo s pripono .py in zabeležite pot do mape, v katero shranite datoteko.
Zdaj odprite konfiguracijsko datoteko PyXLL v urejevalniku in se pomaknite navzdol do vrstice, ki se začne z "pythonpath". Ta nastavitev je običajno seznam map, v katerih bo PyXLL iskal module Python. Dodajte pot do mape, ki vsebuje izvorno kodo Fibonaccijeve funkcije.
Nato se pomaknite navzdol do "moduli" in dodajte svoj modul. Na primer, če ste datoteko shranili kot fibonacci.py, dodajte ime "fibonacci" na seznam:
To bo razkrilo funkcije modula, ki uporabljajo @xl_func dekorater v Excel. Nato se vrnite v Excel in na Zavihek Primer PyXLL, kliknite na Ponovno naloži PyXLL gumb za sinhronizacijo sprememb v konfiguracijski datoteki. Nato lahko pokličete Python fibonacci deluje kot katera koli druga Excelova formula.
Ustvarite lahko poljubno število funkcij in jih na enak način izpostavite Excelu.
Posredovanje podatkov med Excelom in Pythonom
PyXLL podpira uporabo zunanjih knjižnic Python, kot je Pandas. Omogoča prenos podatkov iz teh knjižnic v Python in obratno. Na primer, lahko uporabite Pande za ustvarjanje naključnega podatkovnega okvira in ga posredujte Excelu. Prepričajte se, da je Panda nameščena v vašem sistemu, nato preizkusite to kodo:
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)
Če želite ta modul in njegove funkcije izpostaviti Excelu, sledite istemu postopku. Potem poskusite poklicati naključni_podatkovni okvir deluje kot druga Excelova formula:
=random_dataframe(10,5)
Število vrstic in stolpcev lahko spremenite po želji.
Svoje vnaprej določene podatkovne okvire lahko posredujete Excelu na enak način. Možno je tudi, da uvozite Excelove podatke v skript Python z uporabo Pandas.
Omejitve PyXLL
- Združljivost s sistemom Windows in Excel: PyXLL je zasnovan predvsem za Windows in deluje z Microsoft Excelom v sistemu Windows. Morda ima omejeno funkcionalnost ali težave z združljivostjo na platformah, ki niso Windows, saj je optimiziran za okolja Windows.
- Uvedba: uvajanje preglednic, ki jih poganja PyXLL, za končne uporabnike zahteva, da imajo Python nameščen z minimalnimi odvisnostmi ali izvajalno okolje Python, povezano s preglednico. To pomeni, da morajo imeti uporabniki, ki želijo uporabljati preglednice, ki jih poganja PyXLL, na svojih računalnikih nameščen Python.
- Krivulja učenja: Učinkovita uporaba PyXLL zahteva nekaj znanja o programiranju Python in poznavanje Excelovega objektnega modela. Uporabniki, ki ne poznajo objektnega modela Python ali Excel, bodo morda morali vložiti čas v učenje teh konceptov, preden bodo v celoti izkoristili zmogljivosti PyXLL.
- Stroški licence: PyXLL je komercialni izdelek in glede na vašo uporabo in zahteve so lahko z njegovo uporabo povezani stroški licenciranja. Stroški uporabe PyXLL so odvisni od dejavnikov, kot so število uporabnikov, obseg uvajanja in licenčne pogodbe.
Ali bi morali še vedno uporabljati Excelove funkcije?
Odvisno od tega, kaj želite doseči. Vedno je smiselno uporabiti izvorne Excelove funkcije, ko so na voljo. Vendar pa je PyXLL odlična rešitev za zahtevnejše naloge, ki jih Excelove vgrajene funkcije ne zmorejo.
Knjižnica Pandas je odlično dopolnilo za PyXLL s svojimi analitičnimi zmogljivostmi in močno podporo za obdelavo podatkov.