Quando non esiste una funzione Excel per il lavoro da svolgere, i programmatori Python si rivolgono a PyXLL.

PyXLL è uno strumento che colma il divario tra Microsoft Excel e Python. Ti consente di integrare perfettamente il codice e le funzionalità Python nei fogli di calcolo Excel. Con PyXLL, Excel diventa una piattaforma per sfruttare le librerie e le funzionalità di Python.

PyXLL funge da componente aggiuntivo di Excel. Puoi usarlo per scrivere funzioni e macro Python direttamente nell'ambiente VBA di Excel. PyXLL funge quindi da interprete ed esegue il codice all'interno delle celle di Excel, aprendo molte possibilità. Alcuni di questi includono l'automazione di attività complesse, l'analisi avanzata dei dati e la visualizzazione dei dati.

Una panoramica di PyXLL

PyXLL funziona eseguendo un interprete Python all'interno del processo Excel. Ciò fornisce al tuo codice Python, in esecuzione in PyXLL, l'accesso diretto a dati e oggetti di Excel. Lo strumento è scritto in C++ e utilizza la stessa tecnologia sottostante di Excel. Ciò significa che il codice Python in esecuzione in PyXLL è in genere molto più veloce di

instagram viewer
Codice VBA Excel.

Installazione e configurazione

Per installare PyXLL, vai al file Sito web PyXLL e scarica il componente aggiuntivo. Assicurati che la versione Python e la versione Excel che scegli corrispondano a quelle installate nel tuo sistema. PyXLL è disponibile solo per la versione Windows di Excel.

Una volta completato il download, apri un prompt dei comandi ed esegui questo comando:

pip install pyxll

Devi avere Pip installato nel tuo sistema per eseguire il comando precedente. Quindi utilizzare il pacchetto PyXLL per installare il componente aggiuntivo PyXLL:

pyxll install

Il programma di installazione ti chiederà se hai scaricato il componente aggiuntivo. Immettere sì, quindi fornire il percorso del file zip contenente il componente aggiuntivo. Seguire quindi le istruzioni visualizzate sullo schermo per completare l'installazione.

Iniziare con PyXLL

Una volta installato il plug-in, avvia Excel. Prima del lancio, verrà visualizzato un messaggio che ti chiede di farlo Inizia la prova O Acquista ora. La versione di prova scadrà dopo trenta giorni e dovrai quindi acquistare una licenza per continuare a utilizzare PyXLL.

Clicca sul Inizia la prova pulsante. Questo avvierà Excel con il componente aggiuntivo installato.

Sul Scheda di esempio PyXLL, clicca sul Informazioni su PyXLL pulsante. Questo ti mostrerà il percorso in cui hai installato il componente aggiuntivo, insieme ai percorsi dei file di configurazione e di registro.

Il percorso contenente il file di configurazione è importante poiché dovrai modificare quel file in seguito, quindi prendine nota.

Esporre le funzioni Python in Excel

Per esporre una funzione Python in Excel come funzione definita dall'utente (UDF), utilizzare il file @xl_func decoratore. Questo decoratore indica a PyXLL di registrare la funzione con Excel, rendendola disponibile agli utenti.

Ad esempio, per esporre un file Python fibonacci() funzione in Excel come UDF, è possibile utilizzare il file @xl_func decoratore come segue:

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)

Salva questo codice con estensione .py e prendi nota del percorso della cartella in cui salvi il file.

Ora apri il file di configurazione PyXLL in un editor e scorri verso il basso fino a una riga che inizia con "pythonpath". Questa impostazione è in genere un elenco di cartelle in cui PyXLL cercherà i moduli Python. Aggiungi il percorso alla cartella che contiene il codice sorgente della funzione Fibonacci.

Quindi scorri verso il basso fino a "moduli" e aggiungi il tuo modulo. Ad esempio, se hai salvato il file come fibonacci.py, aggiungi il nome "fibonacci" all'elenco:

Ciò esporrà le funzioni del modulo che utilizzano il file @xl_func decoratore in Excel. Quindi torna a Excel e, su Scheda di esempio PyXLL, clicca sul Ricarica PyXLL pulsante per sincronizzare le modifiche nel file di configurazione. È quindi possibile chiamare Python fibonacci funzionare come qualsiasi altra formula di Excel.

Puoi creare tutte le funzioni di cui hai bisogno ed esporle a Excel nello stesso modo.

Passaggio di dati tra Excel e Python

PyXLL supporta l'uso di librerie Python esterne, come Pandas. Ti consente di passare dati da queste librerie a Python e viceversa. Ad esempio, puoi usa Panda per creare un dataframe casuale e passarlo a Excel. Assicurati che Pandas sia installato nel tuo sistema, quindi prova questo codice:

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)

Dovresti seguire la stessa procedura per esporre questo modulo e le sue funzioni in Excel. Allora prova a chiamare il frame_dati_casuale funziona come faresti con un'altra formula di Excel:

=random_dataframe(10,5)

Puoi modificare il numero di righe e colonne come preferisci.

Puoi passare i tuoi dataframe predefiniti a Excel allo stesso modo. È anche possibile importare dati Excel nello script Python utilizzando Panda.

Limitazioni di PyXLL

  • Compatibilità con Windows ed Excel: PyXLL è progettato principalmente per Windows e funziona con Microsoft Excel su Windows. Potrebbe avere funzionalità limitate o problemi di compatibilità su piattaforme non Windows poiché è ottimizzato per ambienti Windows.
  • Distribuzione: la distribuzione di fogli di calcolo basati su PyXLL agli utenti finali richiede che abbiano installato Python con dipendenze minime o il runtime Python in bundle con il foglio di calcolo. Ciò significa che gli utenti che desiderano utilizzare fogli di calcolo basati su PyXLL devono avere Python installato sui propri computer.
  • Curva di apprendimento: l'utilizzo efficace di PyXLL richiede una certa conoscenza della programmazione Python e familiarità con il modello a oggetti di Excel. Gli utenti che non hanno familiarità con il modello a oggetti di Python o Excel potrebbero dover investire tempo nell'apprendimento di questi concetti prima di utilizzare appieno le funzionalità di PyXLL.
  • Costo della licenza: PyXLL è un prodotto commerciale e, a seconda dell'utilizzo e dei requisiti, potrebbero essere previsti costi di licenza associati al suo utilizzo. Il costo dell'utilizzo di PyXLL dipende da fattori quali il numero di utenti, la scala di distribuzione e i contratti di licenza.

Dovresti ancora utilizzare le funzioni di Excel?

Dipende da cosa vuoi realizzare. È sempre opportuno utilizzare le funzioni native di Excel quando sono disponibili. Ma, per attività più complesse, che le funzioni integrate di Excel non sono in grado di gestire, PyXLL è una soluzione eccellente.

La libreria Pandas è un complemento perfetto per PyXLL con le sue capacità analitiche e un forte supporto per l'elaborazione dei dati.