Eseguire Python con Excel… o in Excel

Abbiamo parlato dell’estensione di Excel con Python. Ci sono diverse ragioni per cui potresti voler estendere Excel con Python. La maggior parte di queste ha a che fare con l’ottenimento di funzioni e funzionalità a cui non è possibile accedere in un ambiente di foglio di calcolo.

Gli esempi che abbiamo fornito in precedenza includono simulazione, ottimizzazione e previsione. Da oltre 25 anni, Production-Scheduling.com si occupa di pianificazione e programmazione in Excel. Non aggiungiamo un nuovo ambiente di programmazione alla leggera. Solo perché si può fare in Python qualcosa che si fa già in Excel, non significa che si debba farlo.

Inevitabilmente, ci saranno ulteriori complicazioni e competenze necessarie per utilizzare Python in modo indipendente o insieme a Excel. Inizieremo a condividere una serie di idee che possono essere efficacemente estese o sostituite da Python. A supporto di ciò, vorrei fornirvi una guida per iniziare a usare Python ed Excel.

L’esempio che utilizzeremo è un progetto chiamato PyPs-Algorithms, che è il nostro repository di strumenti che puoi utilizzare in diversi progetti per dimostrare l’integrazione di Python ed Excel.

Downloads

Gli algoritmi di pianificazione in Python ed Excel richiedono un nuovo modo per fornirti un download. In precedenza, i download che fornivamo erano un file zip proveniente direttamente dal server del nostro sito web. Sebbene questo sia rapido e comodo, presenta diversi svantaggi. Il principale è che il download è statico. Per i progetti in continuo aggiornamento, è preferibile ottenere un collegamento alla versione corrente piuttosto che a quella che abbiamo caricato. Qualsiasi codice Python ti arriverà da GitHub piuttosto che dal nostro sito web. Quando aggiorniamo il codice Python, questo viene automaticamente sincronizzato con GitHub, il nostro sistema di controllo delle versioni. Questo significa che sai di avere la versione più aggiornata. Potremmo valutare la condivisione dei file Excel in questo modo in seguito, ma GitHub verrà utilizzato principalmente per condividere il codice Python e le cartelle di lavoro associate che devono essere elaborate con esso.

https://github.com/kinetica-partners/pyps-algorithms è il repository che contiene gli esempi che utilizzeremo per questo tutorial. Include algoritmi semplici che coprono una varietà di utilizzi diversi nell’ambito della pianificazione e della programmazione per la supply chain. Attualmente è disponibile una funzione per calcolare il tempo di esecuzione totale tramite un calendario. Sono disponibili uno strumento per l’esplosione di bombe e una funzione di previsione. Questo repository verrà aggiornato periodicamente, quindi potresti scoprire che copre più argomenti.

Vai a questo link: https://github.com/kinetica-partners/pyps-algorithms, quindi clicca su “<> CODE” e scarica il file zip. Ulteriori istruzioni per la configurazione sono riportate di seguito. È anche possibile sincronizzarsi con questo repository installando GitHub sul proprio computer. Ai fini di questo tutorial, darò per scontato che non abbiamo mai utilizzato Python prima e utilizzeremo l’opzione più semplice per iniziare, ovvero scaricare un file zip. In questo contesto, è esattamente come scaricare un file zip dal nostro sito web. La differenza principale è che si sta scaricando la versione più recente.

Eseguire Python con Excel

Per eseguire Python sono necessarie 3 cose:

  1. File di codice Python (moduli .py)
  2. Ambiente di runtime Python
  3. Dipendenze (pacchetti di terze parti)

Abbiamo risolto il problema dei file di codice Python fornendovi il link GitHub. Abbiamo soddisfatto il requisito numero uno.

Ora possiamo parlare dell’ambiente di runtime di Python. Esistono tre opzioni principali per eseguire Python con Excel.

  1. Installa Python (e le relative dipendenze) sul tuo computer locale.
  2. Utilizzare un servizio Python basato sul cloud, come Python di Microsoft in Excel su Azure.
  3. Utilizzare un componente aggiuntivo di Excel che supporti Web Assembly (WASM), come xlwings Lite.

Probabilmente il tuo computer non esegue Python senza prima aver installato l’ambiente di runtime Python. A meno che tu non utilizzi Linux o una versione precedente di Mac OS con Python installato, dovrai installare o accedere in altro modo a un ambiente di runtime Python. Il download è gratuito e le istruzioni sono fornite di seguito.

Ambiente di runtime Python e dipendenze sul computer locale

I progetti Python solitamente hanno delle dipendenze. Si tratta di pacchetti open source che forniscono funzionalità non incluse nella libreria standard fornita con l’installazione di Python.

Se hai intenzione di far funzionare Python localmente sul tuo computer, dovrai anche installare le dipendenze necessarie per il funzionamento del progetto.

L’esecuzione di progetti Python richiede una certa curva di apprendimento, e gran parte di questa richiede una conoscenza di base delle dipendenze e dell’ambiente in cui si esegue il codice Python. Probabilmente dovrete iniziare a usare la riga di comando (CMD, PowerShell o Bash), che forse è meno familiare del punta e clicca. Ma un po’ di apprendimento può fare la differenza.

Installa Python

Questo passaggio deve essere eseguito una sola volta. https://www.python.org/downloads/ e scegli Windows, Mac OS o altro. A differenza della maggior parte dei software, non è consigliabile scaricare l’ultima versione, a meno che non si desiderino specificamente le nuove funzionalità. L’ecosistema open source per i pacchetti Python è vasto e diversificato, non tutti i pacchetti saranno compatibili con l’ultima versione. Attualmente, l’ultima versione è la 3.13 e consiglio di scaricare la 3.12.x, con x come versione più recente disponibile. Se l’ultima versione è molto più recente al momento della lettura, è consigliabile tornare indietro di una versione minore (la 3.13.x rimanda alla 3.12.x).

Assicurati di selezionare l’opzione “Aggiungi Python al PATH” quando installi Python.

Scarica e salva il progetto

Vai su https://www.python.org/downloads/windows/ e dal pulsante “<> CODICE” puoi scaricare un file zip. Ci sarà una cartella “pyps-algorithms-main”; rinominala, evitando il “-” se sei su Windows, e salvala nella posizione che preferisci. I file Excel vengono letti da questa posizione: C:\dev\pyps_algorithms\data\current, quindi usa C:\dev\pyps_algorithms se vuoi rimanere completamente allineato con quelli.

Installa un gestore di pacchetti come uv o pip

Ne avrai bisogno per gestire facilmente le dipendenze. Consiglio uv perché semplifica il processo. Richiede però un processo di installazione più insolito. Ecco come procedere:

Windows
  1. Apri PowerShell (Ricerca, PowerShell)
  2. In PowerShell copia e incolla il seguente codice
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
Mac OS
  1. Applicazioni → Utilità → Terminale
  2. Nel Terminale copia e incolla il seguente codice
curl -LsSf https://astral.sh/uv/install.sh | sh
Installa le dipendenze

Ora configureremo un ambiente virtuale. In poche parole, installeremo le dipendenze con le versioni corrette e ne confermeremo il funzionamento con questo progetto.

Windows
  1. Apri PowerShell (Ricerca, PowerShell)
  2. In PowerShell copia e incolla il codice seguente riga per riga
cd C:\dev\pyps_algorithms
uv venv
uv sync
.venv/scripts/activate
Mac OS
  1. Applicazioni → Utilità → Terminale
  2. Nel Terminale copia e incolla il seguente codice riga per riga
cd /percorso-cartella/pyps_algorithms
uv venv
uv sync
source .venv/scripts/activate

Ora sei pronto per eseguire il progetto con una versione locale di Python

Utilizzo di un servizio Python basato su cloud, come Python di Microsoft in Excel

Quando si utilizza Python di Microsoft in Excel, incluso nelle versioni Excel 365 e 2024, non è necessario installarlo. Tutto il codice incluso viene inviato al servizio cloud Azure, dove viene eseguito e i risultati vengono restituiti. Sebbene questa soluzione sia più semplice per gli utenti, presenta alcune limitazioni. Queste limitazioni influiscono sul funzionamento delle funzioni: tutti gli input devono provenire da celle di Excel e non possono essere passati da una funzione all’altra. Gli algoritmi che stiamo esaminando in questo articolo dovrebbero essere ampiamente riprogettati per funzionare con questo metodo.

Ci saranno altri progetti che mostreranno Python di Microsoft in Excel, come il primo webinar sulla simulazione dell’inventario. Per questi algoritmi di pianificazione, dovremo utilizzare metodi alternativi per eseguire Python senza installazione.

Esistono altri modi per eseguire Python nel cloud utilizzando un browser. Questi si basano spesso su notebook interattivi che consentono di eseguire Python e visualizzare i risultati nella stessa pagina. Tra questi: JupyterLab, Google Colab (che utilizza Jupyter Notebook) e Molab (che utilizza Marimo Notebook). Parleremo dell’uso dei notebook in un altro articolo del blog.

Tutta questa scelta può sembrare opprimente. La cosa migliore da fare è scegliere un metodo e poi dedicare un po’ di tempo ad abituarsi. Le altre opzioni possono poi rivelarsi vantaggiose e giustificare il tempo impiegato per impararle.

Componenti aggiuntivi di Excel che supportano WebAssembly (WASM) – xlwings Lite

L’approccio alternativo per eseguire Python in Excel non utilizza il cloud per eseguire il codice Python. Utilizza invece un ambiente chiamato WebAssembly. Questo fornisce un ambiente portabile per l’esecuzione del codice. Spesso questo si trova nel browser. I moderni componenti aggiuntivi di Excel, i componenti aggiuntivi web scaricabili dallo store di Microsoft, utilizzano la tecnologia del browser web per estendere Excel in modalità web. Il componente aggiuntivo di Excel, xlwings lite, utilizza questa tecnologia per eseguire il codice Python all’interno del componente aggiuntivo e il codice viene memorizzato nella cartella di lavoro stessa.

Anche in questo caso, ci sono un paio di opzioni per eseguire Python in Excel WebAssembly.

Installazione di xlwings lite

xlwings Lite è gratuito. È necessario disporre della versione in abbonamento di Excel 365 o delle versioni con licenza a vita 2021/2024. Vai qui: https://appsource.microsoft.com/en-us/product/office/wa200008175 e installalo. Tutto qui.

Dopo aver installato xlwings Lite, puoi utilizzare queste cartelle di lavoro di esempio. Il componente aggiuntivo xlwings Lite è ora disponibile nel menu Home di Excel.

Credo che XL Wings Lite sia l’opzione migliore al momento. Quindi tutti i nostri esempi utilizzeranno XL Wings Lite.

Alternative a Excel Wings Lite

L’alternativa più diffusa per eseguire Python in un componente aggiuntivo di Excel è Anaconda Toolbox per Excel. Anaconda è un’azienda che fornisce un pacchetto di avvio per l’utilizzo di Python in ambito data science. Ha anche sviluppato PyScript, la tecnologia intermedia che fa da ponte tra Excel e WebAssembly. Quindi ha un buon pedigree. Anaconda Toolbox per Excel è un altro ottimo modo per eseguire Python in Excel senza dover inviare tutti i dati al servizio Azure di Microsoft.

Il motivo per cui abbiamo scelto xlwings Lite invece di Anaconda Toolbox per Excel è principalmente perché xlwings Lite offre un accesso migliore al modello a oggetti XL. In altre parole, è più potente nella manipolazione di file Excel utilizzando Python.

Sommario

In questo post piuttosto complesso, ho cercato di illustrarvi tutte le opzioni per eseguire Python con Excel, fornendovi anche alcuni consigli sul modo migliore per ottenere ciascuno di questi risultati.

Per una descrizione dettagliata su come utilizzare il pacchetto di esempio PyPs-Algorithms, consultare il futuro post del blog a cui faremo riferimento qui.

Ulteriori informazioni e formazione sull’utilizzo di Python ed Excel

Sto sviluppando un corso di formazione per gli utenti di Excel, per aiutarli a iniziare a usare Python insieme alle loro competenze di Excel. Se siete interessati a partecipare a questo corso, iscrivetevi alla lista d’attesa. Le persone in lista d’attesa riceveranno uno sconto del 20% al momento dell’uscita del corso.

Python QuickStart Course for Excel Users in Supply Chain

This is the waiting list for the upcoming course: Python QuickStart Course for Excel Users in Supply Chain. This course is intended to give professionals who use Excel for Supply Chain Planning and Analytics a quick start in using Python to extend their capabilities.

Name(Obbligatorio)
My preferred way to practice Python is(Obbligatorio)

We will cover all the main options in this course. This question allows us to understand preferences.

Lascia un commento

Torna in alto