När det inte finns någon Excel-funktion för jobbet, söker Python-programmerare efter PyXLL.

PyXLL är ett verktyg som överbryggar klyftan mellan Microsoft Excel och Python. Det låter dig sömlöst integrera Python-kod och funktionalitet i Excel-kalkylblad. Med PyXLL blir Excel en plattform för att utnyttja Pythons bibliotek och möjligheter.

PyXLL fungerar som ett Excel-tillägg. Du kan använda den för att skriva Python-funktioner och makron direkt i Excels VBA-miljö. PyXLL fungerar sedan som tolk och kör koden i Excel-celler, vilket öppnar upp många möjligheter. Några av dessa inkluderar automatisering av komplexa uppgifter, avancerad dataanalys och datavisualisering.

En översikt över PyXLL

PyXLL fungerar genom att köra en Python-tolk i Excel-processen. Detta ger din Python-kod, som körs i PyXLL, direkt tillgång till Excel-data och -objekt. Verktyget är skrivet i C++ och det använder samma underliggande teknik som Excel. Detta innebär att Python-kod som körs i PyXLL vanligtvis är mycket snabbare än Excel VBA-kod.

instagram viewer

Installation och installation

För att installera PyXLL, gå till PyXLL webbplats och ladda ner tillägget. Se till att Python-versionen och Excel-versionen du väljer matchar de som är installerade i ditt system. PyXLL är endast tillgängligt för Windows-versionen av Excel.

När nedladdningen är klar, öppna en kommandotolk och kör det här kommandot:

pip install pyxll

Du behöver ha Pip installerat i ditt system för att kommandot ovan ska köras. Använd sedan PyXLL-paketet för att installera PyXLL-tillägget:

pyxll install

Installationsprogrammet kommer att fråga om du har laddat ner tillägget. Ange ja och ange sökvägen till zip-filen som innehåller tillägget. Följ sedan instruktionerna på skärmen för att slutföra installationen.

Komma igång med PyXLL

När du har installerat plugin-programmet, starta Excel. Innan den startar kommer en prompt att dyka upp som ber dig att göra det Starta testperiod eller Köp nu. Provversionen går ut efter trettio dagar och du måste då köpa en licens för att fortsätta använda PyXLL.

Klicka på Starta testperiod knapp. Detta kommer att starta Excel med det installerade tillägget.

PyXLL Exempel Tab, Klicka på Om PyXLL knapp. Detta kommer att visa dig sökvägen där du installerade tillägget, tillsammans med sökvägar till konfigurationen och loggfilerna.

Sökvägen som innehåller konfigurationsfilen är viktig eftersom du kommer att behöva redigera den filen senare, så notera den.

Exponera Python-funktioner för Excel

För att exponera en Python-funktion för Excel som en användardefinierad funktion (UDF), använd @xl_func dekoratör. Denna dekoratör instruerar PyXLL att registrera funktionen med Excel, vilket gör den tillgänglig för användare.

Till exempel att exponera en Python fibonacci() funktion till Excel som en UDF kan du använda @xl_func dekoratör enligt följande:

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)

Spara den här koden med filtillägget .py och notera sökvägen till mappen där du sparar filen.

Öppna nu PyXLL-konfigurationsfilen i en editor och scrolla ner till en rad som börjar med "pythonpath". Den här inställningen är vanligtvis en lista över mappar som PyXLL söker efter Python-moduler. Lägg till sökvägen till mappen som innehåller källkoden för Fibonacci-funktionen.

Scrolla sedan ner till "moduler" och lägg till din modul. Till exempel, om du har sparat din fil som fibonacci.py, lägg till namnet "fibonacci" i listan:

Detta kommer att exponera modulfunktionerna som använder @xl_func dekoratör till Excel. Gå sedan tillbaka till Excel och på PyXLL Exempel Tab, Klicka på Ladda om PyXLL knappen för att synkronisera ändringarna i konfigurationsfilen. Du kan sedan anropa Python fibonacci fungerar som vilken annan Excel-formel som helst.

Du kan skapa så många funktioner du behöver och exponera dem för Excel på samma sätt.

Skicka data mellan Excel och Python

PyXLL stöder användningen av externa Python-bibliotek, som Pandas. Det låter dig skicka data från dessa bibliotek till Python och vice versa. Du kan till exempel använd Pandas för att skapa en slumpmässig dataram och skicka det till Excel. Se till att Pandas är installerat i ditt system och testa sedan den här koden:

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)

Du bör följa samma process för att exponera den här modulen och dess funktioner för Excel. Försök sedan att ringa till random_dataframe fungerar som en annan Excel-formel:

=random_dataframe(10,5)

Du kan ändra antalet rader och kolumner som du vill.

Du kan skicka dina fördefinierade dataramar till Excel på samma sätt. Det är också möjligt att importera Excel-data till Python-skriptet med Pandas.

Begränsningar för PyXLL

  • Kompatibilitet med Windows och Excel: PyXLL är främst designad för Windows och fungerar med Microsoft Excel på Windows. Den kan ha begränsad funktionalitet eller kompatibilitetsproblem på icke-Windows-plattformar eftersom den är optimerad för Windows-miljöer.
  • Implementering: Att distribuera PyXLL-drivna kalkylblad till slutanvändare kräver att de har Python installerat med minimala beroenden eller Python-körtiden buntad med kalkylarket. Detta innebär att användare som vill använda PyXLL-drivna kalkylblad måste ha Python installerat på sina maskiner.
  • Inlärningskurva: Att använda PyXLL effektivt kräver viss kunskap om Python-programmering och förtrogenhet med Excels objektmodell. Användare som inte är bekanta med Python eller Excels objektmodell kan behöva investera tid i att lära sig dessa begrepp innan de utnyttjar PyXLLs möjligheter fullt ut.
  • Licenskostnad: PyXLL är en kommersiell produkt, och beroende på din användning och dina krav kan det finnas licenskostnader förknippade med att använda den. Kostnaden för att använda PyXLL beror på faktorer som antalet användare, distributionsskala och licensavtal.

Ska du fortfarande använda Excel-funktioner?

Det beror på vad du vill åstadkomma. Det är alltid vettigt att använda inbyggda Excel-funktioner när de är tillgängliga. Men för mer komplexa uppgifter, som Excels inbyggda funktioner inte kan hantera, är PyXLL en utmärkt lösning.

Pandas-biblioteket är ett perfekt komplement till PyXLL med dess analytiska kapacitet och starka stöd för databehandling.