Jeśli dla danego zadania nie ma funkcji Excela, programiści Pythona sięgają po PyXLL.

PyXLL to narzędzie, które wypełnia lukę pomiędzy Microsoft Excel i Python. Umożliwia bezproblemową integrację kodu i funkcjonalności Pythona z arkuszami kalkulacyjnymi Excel. Dzięki PyXLL Excel staje się platformą do wykorzystania bibliotek i możliwości Pythona.

PyXLL służy jako dodatek do Excela. Można go używać do pisania funkcji i makr Pythona bezpośrednio w środowisku VBA Excela. PyXLL działa wówczas jako interpreter i uruchamia kod w komórkach Excela, otwierając wiele możliwości. Niektóre z nich obejmują automatyzację złożonych zadań, zaawansowaną analizę danych i wizualizację danych.

Przegląd PyXLL

PyXLL działa poprzez uruchomienie interpretera Pythona w procesie Excel. Daje to Twojemu kodowi Pythona działającemu w PyXLL bezpośredni dostęp do danych i obiektów Excela. Narzędzie jest napisane w języku C++ i wykorzystuje tę samą technologię, co Excel. Oznacza to, że kod Pythona działający w PyXLL jest zazwyczaj znacznie szybszy niż Kod VBA w Excelu.

instagram viewer

Instalacja i konfiguracja

Aby zainstalować PyXLL, przejdź do Strona internetowa PyXLL i pobierz dodatek. Upewnij się, że wybrana wersja Pythona i Excela odpowiadają tym zainstalowanym w Twoim systemie. PyXLL jest dostępny tylko dla wersji programu Excel dla systemu Windows.

Po zakończeniu pobierania otwórz wiersz poleceń i uruchom to polecenie:

pip install pyxll

Musisz zainstaluj Pip w swoim systemie aby powyższe polecenie zostało uruchomione. Następnie użyj pakietu PyXLL, aby zainstalować dodatek PyXLL:

pyxll install

Instalator zapyta, czy pobrałeś dodatek. Wpisz tak, a następnie podaj ścieżkę do pliku ZIP zawierającego dodatek. Następnie postępuj zgodnie z instrukcjami wyświetlanymi na ekranie, aby dokończyć instalację.

Pierwsze kroki z PyXLL

Po zainstalowaniu wtyczki uruchom Excel. Przed uruchomieniem pojawi się monit z prośbą Rozpocząć proces Lub Kup Teraz. Wersja próbna wygaśnie po trzydziestu dniach i będziesz musiał kupić licencję, aby kontynuować korzystanie z PyXLL.

Kliknij na Rozpocząć proces przycisk. Spowoduje to uruchomienie programu Excel z zainstalowanym dodatkiem.

Na Zakładka Przykład PyXLL, Kliknij na O PyXLL przycisk. Spowoduje to wyświetlenie ścieżki, w której zainstalowano dodatek, wraz ze ścieżkami do plików konfiguracyjnych i dziennika.

Ścieżka zawierająca plik konfiguracyjny jest ważna, ponieważ później będzie trzeba edytować ten plik, więc zanotuj ją.

Udostępnianie funkcji Pythona Excelowi

Aby udostępnić funkcję języka Python w programie Excel jako funkcję zdefiniowaną przez użytkownika (UDF), użyj metody @xl_func dekorator. Ten dekorator instruuje PyXLL, aby zarejestrował funkcję w Excelu, udostępniając ją użytkownikom.

Na przykład, aby udostępnić plik Python fibonacciego() do Excela jako UDF, możesz użyć @xl_func dekorator w następujący sposób:

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)

Zapisz ten kod z rozszerzeniem .py i zanotuj ścieżkę folderu, w którym zapisujesz plik.

Teraz otwórz plik konfiguracyjny PyXLL w edytorze i przewiń w dół do linii rozpoczynającej się od „pythonpath”. To ustawienie jest zazwyczaj listą folderów, w których PyXLL będzie wyszukiwał moduły Pythona. Dodaj ścieżkę do folderu zawierającego kod źródłowy funkcji Fibonacciego.

Następnie przewiń w dół do „modułów” i dodaj swój moduł. Na przykład, jeśli zapisałeś plik jako fibonacci.py, dodaj nazwę „fibonacci” do listy:

Spowoduje to ujawnienie funkcji modułu korzystających z @xl_func dekorator do Excela. Następnie wróć do Excela i na Zakładka Przykład PyXLL, Kliknij na Załaduj ponownie PyXLL przycisk umożliwiający synchronizację zmian w pliku konfiguracyjnym. Następnie możesz wywołać Python Fibonacciego działać tak samo, jak każda inna formuła programu Excel.

Możesz utworzyć dowolną liczbę funkcji i udostępnić je Excelowi w ten sam sposób.

Przekazywanie danych pomiędzy Excelem i Pythonem

PyXLL obsługuje korzystanie z zewnętrznych bibliotek Pythona, takich jak Pandas. Umożliwia przekazywanie danych z tych bibliotek do Pythona i odwrotnie. Na przykład możesz użyj Pand, aby utworzyć losową ramkę danych i przekaż go do Excela. Upewnij się, że Pandas jest zainstalowana w Twoim systemie, a następnie wypróbuj ten 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)

Powinieneś wykonać ten sam proces, aby udostępnić ten moduł i jego funkcje w programie Excel. Następnie spróbuj zadzwonić pod numer losowa_dataframe działają tak samo jak inne formuły programu Excel:

=random_dataframe(10,5)

Możesz zmienić liczbę wierszy i kolumn według własnego uznania.

W ten sam sposób możesz przekazać predefiniowane ramki danych do programu Excel. Jest to również możliwe importuj dane Excela do skryptu Pythona za pomocą Pand.

Ograniczenia PyXLL

  • Zgodność z systemami Windows i Excel: PyXLL jest przeznaczony głównie dla systemu Windows i współpracuje z Microsoft Excel w systemie Windows. Może mieć ograniczoną funkcjonalność lub problemy ze zgodnością na platformach innych niż Windows, ponieważ jest zoptymalizowany pod kątem środowisk Windows.
  • Wdrożenie: Wdrażanie arkuszy kalkulacyjnych opartych na PyXLL dla użytkowników końcowych wymaga zainstalowania języka Python z minimalnymi zależnościami lub środowiska wykonawczego języka Python dołączonego do arkusza kalkulacyjnego. Oznacza to, że użytkownicy, którzy chcą korzystać z arkuszy kalkulacyjnych opartych na PyXLL, muszą mieć zainstalowany Python na swoich komputerach.
  • Krzywa uczenia się: Efektywne używanie PyXLL wymaga pewnej wiedzy na temat programowania w Pythonie i znajomości modelu obiektowego Excela. Użytkownicy, którzy nie są zaznajomieni z modelem obiektowym Pythona lub Excela, mogą potrzebować czasu na naukę tych koncepcji, zanim w pełni wykorzystają możliwości PyXLL.
  • Koszt licencji: PyXLL jest produktem komercyjnym i w zależności od sposobu użytkowania i wymagań, z używaniem go mogą wiązać się koszty licencji. Koszt korzystania z PyXLL zależy od takich czynników jak liczba użytkowników, skala wdrożenia i umowy licencyjne.

Czy nadal powinieneś używać funkcji Excela?

To zależy od tego, co chcesz osiągnąć. Zawsze warto korzystać z natywnych funkcji programu Excel, jeśli są one dostępne. Jednak w przypadku bardziej złożonych zadań, z którymi nie radzą sobie wbudowane funkcje Excela, PyXLL jest doskonałym rozwiązaniem.

Biblioteka Pandas stanowi doskonałe uzupełnienie PyXLL dzięki swoim możliwościom analitycznym i silnemu wsparciu przetwarzania danych.