Kako neprimjetno integrirati Python u Excel pomoću PyXLL-a

Kako neprimjetno integrirati Python u Excel pomoću PyXLL-a
Čitatelji poput vas podržavaju MUO. Kada kupite putem poveznica na našoj stranici, možemo zaraditi partnersku proviziju. Čitaj više.

PyXLL je alat koji premošćuje jaz između Microsoft Excela i Pythona. Omogućuje vam besprijekornu integraciju Python koda i funkcionalnosti u Excel proračunske tablice. Uz PyXLL, Excel postaje platforma za iskorištavanje Pythonovih biblioteka i mogućnosti.





PyXLL služi kao Excel dodatak. Možete ga koristiti za pisanje Python funkcija i makronaredbi izravno u VBA okruženju programa Excel. PyXLL tada djeluje kao tumač i pokreće kod unutar ćelija Excela, otvarajući mnoge mogućnosti. Neki od njih uključuju automatizaciju složenih zadataka, naprednu analizu podataka i vizualizaciju podataka.





kako promijeniti naziv playstationa

Pregled PyXLL-a

PyXLL radi tako što pokreće Python tumač unutar Excel procesa. Ovo vašem Python kodu, koji radi u PyXLL-u, daje izravan pristup Excel podacima i objektima. Alat je napisan u C++ i koristi istu temeljnu tehnologiju kao Excel. To znači da je Python kod koji se izvodi u PyXLL-u obično mnogo brži od Excel VBA kod .





Instalacija i postavljanje

Da biste instalirali PyXLL, idite na PyXLL web mjesto i preuzmite dodatak. Provjerite odgovaraju li Python verzija i Excel verzija koju odaberete onima instaliranim u vašem sustavu. PyXLL je dostupan samo za Windows verziju programa Excel.

  Stranica za preuzimanje PyXLL-a

Kada preuzimanje završi, otvorite naredbeni redak i pokrenite ovu naredbu:



 pip install pyxll

Trebaš imate instaliran Pip u svom sustavu za pokretanje gornje naredbe. Zatim upotrijebite PyXLL paket za instaliranje PyXLL dodatka:

 pyxll install 

Instalater će vas pitati jeste li preuzeli dodatak. Unesite yes, a zatim navedite put do zip datoteke koja sadrži dodatak. Zatim slijedite upute na zaslonu za dovršetak instalacije.





Početak rada s PyXLL-om

Nakon što instalirate dodatak, pokrenite Excel. Prije nego što se pokrene, pojavit će se upit s upitom da to učinite Pokreni probu ili Kupi sada . Probna verzija će isteći nakon trideset dana i tada ćete morati kupiti licencu da nastavite koristiti PyXLL.

  Upit za verziju PyXLL

Klikni na Pokreni probu dugme. Ovo će pokrenuti Excel s instaliranim dodatkom.





Na Tablica primjera PyXLL-a , Klikni na O PyXLL-u dugme. Ovo će vam pokazati stazu na kojoj ste instalirali dodatak, zajedno sa stazama do konfiguracijskih i log datoteka.

  PyXLL o upitu u Excelu

Put koji sadrži konfiguracijsku datoteku je važan jer ćete kasnije morati urediti tu datoteku, pa je zabilježite.

Izlaganje Python funkcija Excelu

Da biste izložili Python funkciju Excelu kao korisnički definiranu funkciju (UDF), upotrijebite @xl_func dekorater. Ovaj dekorater upućuje PyXLL da registrira funkciju u Excelu, čineći je dostupnom korisnicima.

Na primjer, za izlaganje Pythona fibonacci() u Excel kao UDF, možete koristiti @xl_func dekorater kako slijedi:

 from pyxll import xl_func 

@xl_func
def fibonacci(n):
  """
  This is a Python function that calculates the Fibonacci sequence.
  """
  if n < 0:
    raise ValueError("n must be non-negative")
  elif n == 0 or n == 1:
    return n
  else:
    return fibonacci(n - 1) + fibonacci(n - 2)

Spremite ovaj kod s nastavkom .py i zabilježite putanju mape u koju spremate datoteku.

Sada otvorite PyXLL konfiguracijsku datoteku u editoru i pomaknite se prema dolje do retka koji počinje s 'pythonpath'. Ova postavka obično je popis mapa u kojima će PyXLL tražiti Python module. Dodajte put do mape koja sadrži izvorni kod Fibonaccijeve funkcije.

  PyXLL pythonpath popis mapa

Zatim se pomaknite prema dolje do 'moduli' i dodajte svoj modul. Na primjer, ako ste datoteku spremili kao fibonacci.py , dodajte ime 'fibonacci' na popis:

  Popis modula PyXLL konfiguracijske datoteke

Ovo će otkriti funkcije modula koje koriste @xl_func dekorater za Excel. Zatim se vratite u Excel i na Tablica primjera PyXLL-a , Klikni na Ponovno učitaj PyXLL gumb za sinkronizaciju promjena u konfiguracijskoj datoteci. Tada možete pozvati Python fibonacci funkcionirati kao bilo koja druga Excel formula.

  Python funkcije u Excelu

Možete stvoriti onoliko funkcija koliko vam je potrebno i izložiti ih Excelu na isti način.

Prijenos podataka između Excela i Pythona

PyXLL podržava korištenje vanjskih Python biblioteka, poput Panda. Omogućuje vam prijenos podataka iz tih biblioteka u Python i obrnuto. Na primjer, možete koristite Pande za stvaranje nasumičnog podatkovnog okvira i proslijedite ga u Excel. Provjerite je li Panda instalirana u vašem sustavu, a zatim isprobajte ovaj kôd:

 from pyxll import xl_func 
import pandas as pd
import numpy as np

@xl_func("int rows, int columns: dataframe<index=True>", auto_resize=True)
def random_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)

Trebali biste slijediti isti postupak da biste ovaj modul i njegove funkcije izložili programu Excel. Zatim pokušajte nazvati slučajni_okvir_podataka funkcioniraju kao druge Excel formule:

kako saznati tko je guglao tvoje ime
 =random_dataframe(10,5)

Možete promijeniti broj redaka i stupaca kako želite.

  Podatkovni okvir u Excelu koji je generirao Pandas kroz PyXLL

Svoje predefinirane podatkovne okvire možete proslijediti u Excel na isti način. Također je moguće da uvesti Excel podatke u Python skriptu koristeći Pandas .

Ograničenja PyXLL-a

  • Kompatibilnost sa sustavima Windows i Excel: PyXLL je prvenstveno dizajniran za Windows i radi s Microsoft Excelom na Windowsima. Može imati ograničenu funkcionalnost ili probleme s kompatibilnošću na platformama koje nisu Windows jer je optimiziran za Windows okruženja.
  • Implementacija: implementacija proračunskih tablica koje pokreće PyXLL krajnjim korisnicima zahtijeva da imaju instaliran Python s minimalnim ovisnostima ili Python runtime u paketu s proračunskom tablicom. To znači da korisnici koji žele koristiti proračunske tablice koje pokreće PyXLL moraju imati instaliran Python na svojim strojevima.
  • Krivulja učenja: Učinkovito korištenje PyXLL-a zahtijeva nešto znanja o programiranju u Pythonu i poznavanje Excelovog objektnog modela. Korisnici koji nisu upoznati s objektnim modelom Pythona ili Excela možda će morati uložiti vrijeme u učenje ovih koncepata prije nego što u potpunosti iskoriste mogućnosti PyXLL-a.
  • Trošak licence: PyXLL je komercijalni proizvod i ovisno o vašoj uporabi i zahtjevima, mogu postojati troškovi licenciranja povezani s njegovom upotrebom. Trošak korištenja PyXLL-a ovisi o čimbenicima kao što su broj korisnika, razmjer implementacije i ugovori o licenciranju.

Trebate li i dalje koristiti Excel funkcije?

Ovisi o tome što želite postići. Uvijek ima smisla koristiti izvorne Excel funkcije kada su dostupne. No, za složenije zadatke s kojima se Excelove ugrađene funkcije ne mogu nositi, PyXLL je izvrsno rješenje.

Knjižnica Pandas savršena je nadopuna PyXLL-u sa svojim analitičkim mogućnostima i snažnom podrškom za obradu podataka.