Sådan integreres Python problemfrit i Excel ved hjælp af PyXLL

Sådan integreres Python problemfrit i Excel ved hjælp af PyXLL
Læsere som dig hjælper med at støtte MUO. Når du foretager et køb ved hjælp af links på vores websted, kan vi optjene en affiliate-kommission. Læs mere.

PyXLL er et værktøj, der bygger bro mellem Microsoft Excel og Python. Det giver dig mulighed for problemfrit at integrere Python-kode og funktionalitet i Excel-regneark. Med PyXLL bliver Excel en platform til at udnytte Pythons biblioteker og muligheder.





PyXLL fungerer som et Excel-tilføjelsesprogram. Du kan bruge den til at skrive Python-funktioner og makroer direkte i Excels VBA-miljø. PyXLL fungerer derefter som tolk og kører koden i Excel-celler, hvilket åbner op for mange muligheder. Nogle af disse omfatter automatisering af komplekse opgaver, avanceret dataanalyse og datavisualisering.





En oversigt over PyXLL

PyXLL fungerer ved at køre en Python-fortolker i Excel-processen. Dette giver din Python-kode, der kører i PyXLL, direkte adgang til Excel-data og -objekter. Værktøjet er skrevet i C++, og det bruger den samme underliggende teknologi som Excel. Dette betyder, at Python-kode, der kører i PyXLL, typisk er meget hurtigere end Excel VBA-kode .





Installation og opsætning

For at installere PyXLL skal du gå til PyXLL hjemmeside og download tilføjelsen. Sørg for, at Python-versionen og Excel-versionen, du vælger, matcher dem, der er installeret på dit system. PyXLL er kun tilgængelig til Windows-versionen af ​​Excel.

  PyXLL download side

Når overførslen er færdig, skal du åbne en kommandoprompt og køre denne kommando:



 pip install pyxll

Du skal have Pip installeret i dit system for at ovenstående kommando kan køre. Brug derefter PyXLL-pakken til at installere PyXLL-tilføjelsesprogrammet:

 pyxll install 

Installationsprogrammet vil spørge, om du har downloadet tilføjelsen. Indtast ja, og angiv derefter stien til zip-filen, der indeholder tilføjelsesprogrammet. Følg derefter instruktionerne på skærmen for at fuldføre installationen.





Kom godt i gang med PyXLL

Når du har installeret pluginnet, skal du starte Excel. Før den starter, vil en prompt poppe op, der beder dig om det Start prøveversion eller Køb nu . Prøveversionen udløber efter tredive dage, og du skal derefter købe en licens for at fortsætte med at bruge PyXLL.

  PyXLL-versionsprompt

Klik på Start prøveversion knap. Dette vil starte Excel med det installerede tilføjelsesprogram.





På den PyXLL Eksempel Fane , klik på Om PyXLL knap. Dette vil vise dig stien, hvor du installerede tilføjelsesprogrammet, sammen med stier til konfigurationen og logfiler.

  PyXLL om prompt i Excel

Stien, der indeholder konfigurationsfilen, er vigtig, da du bliver nødt til at redigere filen senere, så noter den.

hvorfor kører min disk på 100

Eksponering af Python-funktioner for Excel

For at eksponere en Python-funktion til Excel som en brugerdefineret funktion (UDF), skal du bruge @xl_func dekoratør. Denne dekoratør instruerer PyXLL om at registrere funktionen med Excel, hvilket gør den tilgængelig for brugerne.

For eksempel at afsløre en Python fibonacci() funktion til Excel som UDF, kan du bruge @xl_func dekoratør som følger:

 from pyxll import xl_func 

@xl_func
def fibonacci(n):
  """
  This is a Python function that calculates the Fibonacci sequence.
  """
  if n < 0:
    raise ValueError("n must be non-negative")
  elif n == 0 or n == 1:
    return n
  else:
    return fibonacci(n - 1) + fibonacci(n - 2)

Gem denne kode med filtypenavnet .py, og noter stien til den mappe, hvor du gemmer filen.

Åbn nu PyXLL-konfigurationsfilen i en editor og rul ned til en linje, der begynder med 'pythonpath'. Denne indstilling er typisk en liste over mapper, som PyXLL vil søge efter Python-moduler. Tilføj stien til mappen, der indeholder Fibonacci-funktionens kildekode.

  PyXLL pythonpath mappeliste

Scroll derefter ned til 'moduler' og tilføj dit modul. For eksempel, hvis du har gemt din fil som fibonacci.py , tilføj navnet 'fibonacci' til listen:

  PyXLL konfigurationsfil moduler liste

Dette vil afsløre de modulfunktioner, der bruger @xl_func dekoratør til Excel. Gå derefter tilbage til Excel og på PyXLL Eksempel Fane , klik på Genindlæs PyXLL knappen for at synkronisere ændringerne i konfigurationsfilen. Du kan derefter kalde Python fibonacci fungerer som enhver anden Excel-formel.

  Python-funktioner i Excel

Du kan oprette lige så mange funktioner, som du har brug for, og eksponere dem til Excel på samme måde.

Overførsel af data mellem Excel og Python

PyXLL understøtter brugen af ​​eksterne Python-biblioteker, som Pandas. Det lader dig videregive data fra disse biblioteker til Python og omvendt. Det kan du f.eks bruge Pandas til at oprette en tilfældig dataramme og send det til Excel. Sørg for, at Pandas er installeret i dit system, og prøv derefter denne kode:

Windows 10 starter ikke sort skærm
 from pyxll import xl_func 
import pandas as pd
import numpy as np

@xl_func("int rows, int columns: dataframe<index=True>", auto_resize=True)
def random_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ølge den samme proces for at eksponere dette modul og dets funktioner til Excel. Så prøv at ringe til random_dataframe fungerer som en anden Excel-formel:

 =random_dataframe(10,5)

Du kan ændre antallet af rækker og kolonner, som du vil.

  Dataramme i Excel genereret af Pandas gennem PyXLL

Du kan videregive dine foruddefinerede datarammer til Excel på samme måde. Det er også muligt at importer Excel-data til Python-scriptet ved hjælp af Pandas .

Begrænsninger af PyXLL

  • Windows og Excel-kompatibilitet: PyXLL er primært designet til Windows og fungerer med Microsoft Excel på Windows. Det kan have begrænset funktionalitet eller kompatibilitetsproblemer på ikke-Windows-platforme, da det er optimeret til Windows-miljøer.
  • Implementering: Implementering af PyXLL-drevne regneark til slutbrugere kræver, at de har Python installeret med minimale afhængigheder eller Python-runtime bundtet med regnearket. Det betyder, at brugere, der ønsker at bruge PyXLL-drevne regneark, skal have Python installeret på deres maskiner.
  • Læringskurve: At bruge PyXLL effektivt kræver en vis viden om Python-programmering og kendskab til Excels objektmodel. Brugere, der ikke er fortrolige med Python eller Excels objektmodel, skal muligvis investere tid i at lære disse begreber, før de fuldt ud udnytter PyXLLs muligheder.
  • Licensomkostninger: PyXLL er et kommercielt produkt, og afhængigt af din brug og dine krav kan der være licensomkostninger forbundet med at bruge det. Omkostningerne ved at bruge PyXLL afhænger af faktorer såsom antallet af brugere, implementeringsskala og licensaftaler.

Skal du stadig bruge Excel-funktioner?

Det afhænger af, hvad du ønsker at opnå. Det giver altid mening at bruge native Excel-funktioner, når de er tilgængelige. Men til mere komplekse opgaver, som Excels indbyggede funktioner ikke kan håndtere, er PyXLL en fremragende løsning.

Pandas-biblioteket er et perfekt supplement til PyXLL med dets analytiske muligheder og stærke understøttelse af databehandling.