Када не постоји Екцел функција за посао који је при руци, Питхон програмери посежу за ПиКСЛЛ.
ПиКСЛЛ је алатка која премошћује јаз између Мицрософт Екцел-а и Питхон-а. Омогућава вам да неприметно интегришете Питхон код и функционалност у Екцел табеле. Са ПиКСЛЛ, Екцел постаје платформа за коришћење Питхон библиотека и могућности.
ПиКСЛЛ служи као додатак за Екцел. Можете га користити за писање Питхон функција и макроа директно у Екцел-овом ВБА окружењу. ПиКСЛЛ тада делује као тумач и покреће код унутар Екцел ћелија, отварајући многе могућности. Неки од њих укључују аутоматизацију сложених задатака, напредну анализу података и визуелизацију података.
Преглед ПиКСЛЛ-а
ПиКСЛЛ ради тако што покреће Питхон интерпретер унутар Екцел процеса. Ово даје вашем Питхон коду, који ради у ПиКСЛЛ-у, директан приступ Екцел подацима и објектима. Алат је написан у Ц++ и користи исту технологију као и Екцел. То значи да је Питхон код који ради у ПиКСЛЛ обично много бржи од Екцел ВБА код.
Инсталација и подешавање
Да бисте инсталирали ПиКСЛЛ, идите на ПиКСЛЛ веб-сајт и преузмите додатак. Уверите се да Питхон верзија и Екцел верзија коју одаберете одговарају онима инсталираним у вашем систему. ПиКСЛЛ је доступан само за Виндовс верзију Екцел-а.
Када се преузимање заврши, отворите командну линију и покрените ову команду:
pip install pyxll
Морате да имате инсталиран Пип у вашем систему да би се горња команда покренула. Затим користите ПиКСЛЛ пакет да бисте инсталирали ПиКСЛЛ додатак:
pyxll install
Инсталатер ће вас питати да ли сте преузели додатак. Унесите да, а затим наведите путању до зип датотеке која садржи додатак. Затим пратите упутства на екрану да бисте довршили инсталацију.
Први кораци са ПиКСЛЛ
Када инсталирате додатак, покрените Екцел. Пре него што се покрене, појавиће се промпт који ће од вас тражити да то учините Старт суђења или Купи одмах. Пробна верзија ће истећи након тридесет дана и тада ћете морати да купите лиценцу да бисте наставили да користите ПиКСЛЛ.
Кликните на Старт суђења дугме. Ово ће покренути Екцел са инсталираним додатком.
На ПиКСЛЛ Пример Таб, кликните на О ПиКСЛЛ-у дугме. Ово ће вам показати путању на којој сте инсталирали додатак, заједно са путањама до конфигурационих и датотека евиденције.
Путања која садржи конфигурациону датотеку је важна јер ћете касније морати да уредите ту датотеку, па је забележите.
Излагање Питхон функција Екцел-у
Да бисте изложили Питхон функцију Екцел-у као кориснички дефинисану функцију (УДФ), користите @кл_фунц декоратер. Овај декоратер налаже ПиКСЛЛ-у да региструје функцију у Екцел-у, чинећи је доступном корисницима.
На пример, да изложите Питхон фибоначи() функцију у Екцел као УДФ, можете користити @кл_фунц декоратер на следећи начин:
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)
Сачувајте овај код са екстензијом .пи и забележите путању фасцикле у којој чувате датотеку.
Сада отворите ПиКСЛЛ конфигурациону датотеку у уређивачу и померите се надоле до реда који почиње „питхонпатх“. Ова поставка је обично листа фасцикли у којима ће ПиКСЛЛ тражити Питхон модуле. Додајте путању до фасцикле која садржи изворни код Фибоначијеве функције.
Затим померите надоле до „модули“ и додајте свој модул. На пример, ако сте сачували датотеку као фибонацци.пи, додајте име "фибоначи" на листу:
Ово ће открити функције модула које користе @кл_фунц декоратер за Екцел. Затим се вратите у Екцел и на ПиКСЛЛ Пример Таб, кликните на Поново учитај ПиКСЛЛ дугме за синхронизацију промена у конфигурационој датотеци. Затим можете позвати Питхон фибоначи функционише као и свака друга Екцел формула.
Можете креирати онолико функција колико вам је потребно и изложити их Екцел-у на исти начин.
Преношење података између Екцел-а и Питхон-а
ПиКСЛЛ подржава употребу екстерних Питхон библиотека, попут Панда. Омогућава вам да пренесете податке из ових библиотека у Питхон и обрнуто. На пример, можете користите Панде за креирање случајног оквира података и проследите га у Екцел. Уверите се да је Пандас инсталиран у вашем систему, а затим испробајте овај код:
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)
Требало би да следите исти процес да бисте овај модул и његове функције изложили Екцел-у. Затим покушајте да позовете рандом_датафраме функционише као и друга Екцел формула:
=random_dataframe(10,5)
Можете да промените број редова и колона колико желите.
На исти начин можете проследити своје унапред дефинисане оквире података у Екцел. Такође је могуће да се увезите Екцел податке у Питхон скрипту користећи Пандас.
Ограничења ПиКСЛЛ-а
- Компатибилност са Виндовс-ом и Екцел-ом: ПиКСЛЛ је првенствено дизајниран за Виндовс и ради са Мицрософт Екцел-ом на Виндовс-у. Можда има ограничену функционалност или проблеме са компатибилношћу на платформама које нису Виндовс, јер је оптимизован за Виндовс окружења.
- Примена: Примена табела које покреће ПиКСЛЛ крајњим корисницима захтева од њих да имају инсталиран Питхон са минималним зависностима или Питхон рунтиме у пакету са табелом. То значи да корисници који желе да користе ПиКСЛЛ табеле треба да имају инсталиран Питхон на својим машинама.
- Крива учења: Ефикасно коришћење ПиКСЛЛ-а захтева извесно знање о Питхон програмирању и познавање Екцеловог објектног модела. Корисници који нису упознати са Питхон-овим или Екцел-овим објектним моделом можда ће морати да уложе време у учење ових концепата пре него што у потпуности искористе могућности ПиКСЛЛ-а.
- Цена лиценце: ПиКСЛЛ је комерцијални производ и у зависности од ваше употребе и захтева могу постојати трошкови лиценцирања у вези са његовим коришћењем. Цена коришћења ПиКСЛЛ-а зависи од фактора као што су број корисника, обим примене и уговори о лиценцирању.
Да ли и даље треба да користите Екцел функције?
Зависи од тога шта желите да постигнете. Увек има смисла користити изворне Екцел функције када су доступне. Али, за сложеније задатке које уграђене функције Екцел-а не могу да поднесу, ПиКСЛЛ је одлично решење.
Пандас библиотека је савршена допуна за ПиКСЛЛ са својим аналитичким могућностима и снажном подршком за обраду података.