Ja konkrētajam darbam nav Excel funkcijas, Python programmētāji vēršas pie PyXLL.
PyXLL ir rīks, kas mazina plaisu starp Microsoft Excel un Python. Tas ļauj nemanāmi integrēt Python kodu un funkcionalitāti Excel izklājlapās. Izmantojot PyXLL, Excel kļūst par platformu Python bibliotēku un iespēju izmantošanai.
PyXLL kalpo kā Excel pievienojumprogramma. Varat to izmantot, lai rakstītu Python funkcijas un makro tieši Excel VBA vidē. PyXLL pēc tam darbojas kā tulks un palaiž kodu Excel šūnās, paverot daudzas iespējas. Daži no tiem ietver sarežģītu uzdevumu automatizāciju, uzlabotu datu analīzi un datu vizualizāciju.
Pārskats par PyXLL
PyXLL darbojas, Excel procesā palaižot Python tulku. Tādējādi jūsu Python kods, kas darbojas PyXLL, nodrošina tiešu piekļuvi Excel datiem un objektiem. Rīks ir rakstīts C++ valodā un izmanto to pašu pamatā esošo tehnoloģiju kā Excel. Tas nozīmē, ka Python kods, kas darbojas PyXLL, parasti ir daudz ātrāks nekā Excel VBA kods.
Uzstādīšana un iestatīšana
Lai instalētu PyXLL, dodieties uz
PyXLL vietne un lejupielādējiet pievienojumprogrammu. Pārliecinieties, vai jūsu izvēlētā Python versija un Excel versija atbilst jūsu sistēmā instalētajai versijai. PyXLL ir pieejams tikai Excel Windows versijai.Kad lejupielāde ir pabeigta, atveriet komandu uzvedni un palaidiet šo komandu:
pip install pyxll
Tev vajag jūsu sistēmā ir instalēts Pip lai darbotos iepriekš minētā komanda. Pēc tam izmantojiet PyXLL pakotni, lai instalētu PyXLL pievienojumprogrammu:
pyxll install
Instalēšanas programma jautās, vai esat lejupielādējis pievienojumprogrammu. Ievadiet jā un pēc tam norādiet ceļu uz zip failu, kurā ir pievienojumprogramma. Pēc tam izpildiet ekrānā redzamos norādījumus, lai pabeigtu instalēšanu.
Darba sākšana ar PyXLL
Kad esat instalējis spraudni, palaidiet programmu Excel. Pirms tā palaišanas tiks parādīta uzvedne ar lūgumu Sāciet izmēģinājumu vai Pērc tagad. Izmēģinājuma versija beigsies pēc trīsdesmit dienām, un pēc tam jums būs jāiegādājas licence, lai turpinātu lietot PyXLL.
Noklikšķiniet uz Sāciet izmēģinājumu pogu. Tiks palaists programma Excel ar instalēto pievienojumprogrammu.
Uz PyXLL piemēru cilne, noklikšķiniet uz Par PyXLL pogu. Tas parādīs ceļu, kurā instalējāt pievienojumprogrammu, kā arī ceļus uz konfigurāciju un žurnālfailiem.
Ceļš, kurā atrodas konfigurācijas fails, ir svarīgs, jo vēlāk šis fails būs jārediģē, tāpēc pierakstiet to.
Python funkciju parādīšana programmā Excel
Lai Python funkciju parādītu programmā Excel kā lietotāja definētu funkciju (UDF), izmantojiet @xl_func dekorators. Šis dekorētājs uzdod PyXLL reģistrēt funkciju programmā Excel, padarot to pieejamu lietotājiem.
Piemēram, lai atklātu Python fibonači () funkciju Excel kā UDF, varat izmantot @xl_func dekorators šādi:
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)
Saglabājiet šo kodu ar paplašinājumu .py un ņemiet vērā tās mapes ceļu, kurā saglabājat failu.
Tagad atveriet PyXLL konfigurācijas failu redaktorā un ritiniet uz leju līdz rindai, kas sākas ar "pythonpath". Šis iestatījums parasti ir to mapju saraksts, kurās PyXLL meklēs Python moduļus. Pievienojiet ceļu mapei, kurā ir Fibonači funkcijas avota kods.
Pēc tam ritiniet uz leju līdz "moduļi" un pievienojiet savu moduli. Piemēram, ja failu saglabājāt kā fibonacci.py, pievienojiet sarakstam nosaukumu "fibonacci":
Tas atklās moduļa funkcijas, kas izmanto @xl_func dekorētājs uz Excel. Pēc tam atgriezieties programmā Excel un uz PyXLL piemēru cilne, noklikšķiniet uz Pārlādēt PyXLL pogu, lai sinhronizētu izmaiņas konfigurācijas failā. Pēc tam varat izsaukt Python fibonači darbojas tāpat kā jebkura cita Excel formula.
Varat izveidot tik daudz funkciju, cik nepieciešams, un tādā pašā veidā pakļaut tās programmā Excel.
Datu nodošana starp Excel un Python
PyXLL atbalsta ārējo Python bibliotēku, piemēram, Pandas, izmantošanu. Tas ļauj pārsūtīt datus no šīm bibliotēkām uz Python un otrādi. Piemēram, jūs varat izmantojiet Pandas, lai izveidotu nejaušu datu rāmi un nodod to programmai Excel. Pārliecinieties, vai jūsu sistēmā ir instalētas Pandas, pēc tam izmēģiniet šo kodu:
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)
Lai parādītu šo moduli un tā funkcijas programmā Excel, jums jāveic tas pats process. Pēc tam mēģiniet piezvanīt uz random_dataframe darbojas tāpat kā citas Excel formulas:
=random_dataframe(10,5)
Jūs varat mainīt rindu un kolonnu skaitu, kā vēlaties.
Tādā pašā veidā varat nosūtīt iepriekš definētos datu kadrus programmai Excel. Ir iespējams arī importējiet Excel datus Python skriptā, izmantojot Pandas.
PyXLL ierobežojumi
- Windows un Excel saderība: PyXLL galvenokārt ir paredzēts operētājsistēmai Windows un darbojas ar Microsoft Excel operētājsistēmā Windows. Tam var būt ierobežotas funkcionalitātes vai saderības problēmas platformās, kas nav Windows, jo tas ir optimizēts Windows vidēm.
- Izvietošana: lai galalietotājiem izvietotu PyXLL darbināmas izklājlapas, viņiem ir jābūt instalētam Python ar minimālu atkarību vai Python izpildlaikam, kas ir komplektā ar izklājlapu. Tas nozīmē, ka lietotājiem, kuri vēlas izmantot PyXLL darbināmas izklājlapas, savās iekārtās ir jābūt instalētai Python.
- Mācīšanās līkne: efektīvai PyXLL lietošanai ir nepieciešamas zināmas zināšanas par Python programmēšanu un zināšanas par Excel objektu modeli. Lietotājiem, kuri nepārzina Python vai Excel objektu modeli, iespējams, būs jāiegulda laiks šo jēdzienu apguvē, pirms pilnībā izmantos PyXLL iespējas.
- Licences izmaksas: PyXLL ir komerciāls produkts, un atkarībā no jūsu lietojuma un prasībām ar tā lietošanu var būt saistītas licencēšanas izmaksas. PyXLL izmantošanas izmaksas ir atkarīgas no tādiem faktoriem kā lietotāju skaits, izvietošanas mērogs un licencēšanas līgumi.
Vai jums joprojām vajadzētu izmantot Excel funkcijas?
Tas ir atkarīgs no tā, ko vēlaties paveikt. Vienmēr ir lietderīgi izmantot vietējās Excel funkcijas, kad tās ir pieejamas. Bet sarežģītākiem uzdevumiem, ar kuriem Excel iebūvētās funkcijas nevar tikt galā, PyXLL ir lielisks risinājums.
Pandas bibliotēka lieliski papildina PyXLL ar savām analītiskajām iespējām un spēcīgu datu apstrādes atbalstu.