Kai atliekamam darbui nėra „Excel“ funkcijos, „Python“ programuotojai kreipiasi į PyXLL.
PyXLL yra įrankis, mažinantis atotrūkį tarp Microsoft Excel ir Python. Tai leidžia sklandžiai integruoti Python kodą ir funkcijas į „Excel“ skaičiuokles. Naudojant PyXLL, „Excel“ tampa platforma, skirta „Python“ bibliotekoms ir galimybėms panaudoti.
PyXLL veikia kaip „Excel“ priedas. Jį galite naudoti norėdami rašyti Python funkcijas ir makrokomandas tiesiogiai „Excel“ VBA aplinkoje. Tada PyXLL veikia kaip vertėjas ir paleidžia kodą „Excel“ ląstelėse, atverdamas daugybę galimybių. Kai kurie iš jų apima sudėtingų užduočių automatizavimą, išplėstinę duomenų analizę ir duomenų vizualizavimą.
PyXLL apžvalga
PyXLL veikia paleisdamas Python interpretatorių „Excel“ procese. Tai suteikia jūsų Python kodui, veikiančiam PyXLL, tiesioginę prieigą prie „Excel“ duomenų ir objektų. Įrankis parašytas C++ ir naudoja tą pačią pagrindinę technologiją kaip ir Excel. Tai reiškia, kad Python kodas, veikiantis PyXLL, paprastai yra daug greitesnis nei Excel VBA kodas.
Diegimas ir sąranka
Norėdami įdiegti PyXLL, eikite į PyXLL svetainė ir atsisiųskite priedą. Įsitikinkite, kad pasirinkta „Python“ ir „Excel“ versija atitinka jūsų sistemoje įdiegtas versijas. „PyXLL“ galima tik „Excel“ „Windows“ versijai.
Kai atsisiuntimas bus baigtas, atidarykite komandų eilutę ir paleiskite šią komandą:
pip install pyxll
Tau reikia ar jūsų sistemoje įdiegtas Pip kad būtų paleista aukščiau nurodyta komanda. Tada naudokite PyXLL paketą, kad įdiegtumėte PyXLL priedą:
pyxll install
Diegimo programa paklaus, ar atsisiuntėte priedą. Įveskite taip, tada nurodykite ZIP failo, kuriame yra priedas, kelią. Tada vykdykite ekrane pateikiamas instrukcijas, kad užbaigtumėte diegimą.
Darbo su PyXLL pradžia
Įdiegę papildinį paleiskite „Excel“. Prieš jį paleidžiant, pasirodys raginimas, kuriame bus prašoma tai padaryti Pradėti bandymą arba Pirkti dabar. Bandomoji versija nustos galioti po trisdešimties dienų, o tada turėsite įsigyti licenciją, kad galėtumėte toliau naudoti PyXLL.
Spustelėkite ant Pradėti bandymą mygtuką. Tai paleis „Excel“ su įdiegtu priedu.
Ant „PyXLL“ pavyzdys, spustelėkite Apie PyXLL mygtuką. Tai parodys kelią, kuriuo įdiegėte priedą, kartu su keliais į konfigūraciją ir žurnalo failus.
Kelias, kuriame yra konfigūracijos failas, yra svarbus, nes vėliau turėsite jį redaguoti, todėl pasižymėkite jį.
„Python“ funkcijų atskleidimas „Excel“.
Jei norite, kad „Python“ funkcija būtų rodoma „Excel“ kaip vartotojo apibrėžta funkcija (UDF), naudokite @xl_func dekoratorius. Šis dekoratorius nurodo PyXLL užregistruoti funkciją „Excel“, kad ji būtų prieinama vartotojams.
Pavyzdžiui, atskleisti Python Fibonacci () funkcija Excel kaip UDF, galite naudoti @xl_func dekoratorius taip:
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)
Išsaugokite šį kodą su plėtiniu .py ir atkreipkite dėmesį į aplanko, kuriame įrašote failą, kelią.
Dabar atidarykite PyXLL konfigūracijos failą redaktoriuje ir slinkite žemyn iki eilutės, prasidedančios „pythonpath“. Šis nustatymas paprastai yra aplankų, kuriuose PyXLL ieškos Python modulių, sąrašas. Pridėkite kelią į aplanką, kuriame yra Fibonacci funkcijos šaltinio kodas.
Tada slinkite žemyn iki „moduliai“ ir pridėkite savo modulį. Pavyzdžiui, jei failą išsaugojote kaip fibonacci.py, pridėkite pavadinimą "fibonacci" į sąrašą:
Tai parodys modulio funkcijas, kurios naudoja @xl_func dekoratorius į Excel. Tada grįžkite į „Excel“ ir „ „PyXLL“ pavyzdys, spustelėkite Iš naujo įkelkite PyXLL mygtuką, kad būtų sinchronizuojami konfigūracijos failo pakeitimai. Tada galite iškviesti Python Fibonacci veikia kaip bet kuri kita Excel formulė.
Galite sukurti tiek funkcijų, kiek jums reikia, ir pateikti jas „Excel“ tokiu pat būdu.
Duomenų perdavimas tarp Excel ir Python
PyXLL palaiko išorinių Python bibliotekų, tokių kaip Pandas, naudojimą. Tai leidžia perduoti duomenis iš šių bibliotekų į Python ir atvirkščiai. Pavyzdžiui, galite naudokite Pandas, kad sukurtumėte atsitiktinį duomenų rėmelį ir perduokite į Excel. Įsitikinkite, kad Pandas įdiegtas jūsų sistemoje, tada išbandykite šį kodą:
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)
Turėtumėte atlikti tą patį procesą, kad šis modulis ir jo funkcijos būtų rodomi „Excel“. Tada pabandykite paskambinti random_dataframe veikia taip, kaip ir kita Excel formulė:
=random_dataframe(10,5)
Galite keisti eilučių ir stulpelių skaičių, kaip norite.
Taip pat galite perduoti iš anksto nustatytus duomenų rėmelius į „Excel“. Taip pat galima importuoti Excel duomenis į Python scenarijų naudodami Pandas.
PyXLL apribojimai
- „Windows“ ir „Excel“ suderinamumas: „PyXLL“ pirmiausia sukurta „Windows“ ir veikia su „Microsoft Excel“ sistemoje „Windows“. Jis gali turėti ribotų funkcijų arba suderinamumo problemų ne Windows platformose, nes yra optimizuotas Windows aplinkai.
- Diegimas: norint įdiegti PyXLL pagrįstas skaičiuokles galutiniams vartotojams, jie turi turėti įdiegtą Python su minimaliomis priklausomybėmis arba Python vykdymo laiką, susietą su skaičiuokle. Tai reiškia, kad vartotojai, norintys naudoti PyXLL maitinamas skaičiuokles, savo kompiuteriuose turi turėti įdiegtą Python.
- Mokymosi kreivė: norint efektyviai naudoti PyXLL, reikia šiek tiek žinių apie Python programavimą ir susipažinti su Excel objekto modeliu. Naudotojams, kurie nėra susipažinę su Python ar Excel objekto modeliu, gali tekti skirti laiko išmokti šias sąvokas, kad galėtų visiškai išnaudoti PyXLL galimybes.
- Licencijos kaina: PyXLL yra komercinis produktas ir, atsižvelgiant į jūsų naudojimą ir reikalavimus, su jo naudojimu gali būti susijusios licencijavimo išlaidos. PyXLL naudojimo kaina priklauso nuo tokių veiksnių kaip vartotojų skaičius, diegimo mastas ir licencijavimo sutartys.
Ar vis tiek turėtumėte naudoti „Excel“ funkcijas?
Tai priklauso nuo to, ką norite pasiekti. Visada prasminga naudoti vietines „Excel“ funkcijas, kai jos yra prieinamos. Tačiau sudėtingesnėms užduotims, kurių negali atlikti „Excel“ integruotos funkcijos, PyXLL yra puikus sprendimas.
Pandas biblioteka puikiai papildo PyXLL savo analitinėmis galimybėmis ir stipriu duomenų apdorojimo palaikymu.