
La creazione di file Excel in Python è un requisito comune nelle applicazioni basate sui dati. Quando i dati dell'applicazione devono essere forniti in un formato che gli utenti aziendali possano facilmente rivedere e condividere, Excel rimane una delle scelte più pratiche e ampiamente accettate.
Nei progetti reali, la generazione di un file Excel con Python è spesso il punto di partenza di un processo automatizzato. I dati possono provenire da database, API o servizi interni e Python è responsabile di trasformare tali dati in un file Excel strutturato che segue un layout e una convenzione di denominazione coerenti.
Questo articolo mostra come creare file Excel in Python, dalla generazione di una cartella di lavoro da zero, alla scrittura di dati, all'applicazione di formattazione di base e all'aggiornamento di file esistenti quando necessario. Tutti gli esempi sono presentati da una prospettiva pratica, concentrandosi su come i file Excel vengono creati e utilizzati in scenari di automazione reali.
Indice
- Scenari Tipici per la Creazione di File Excel in Python
- Configurazione dell'Ambiente
- Creazione di un Nuovo File Excel da Zero in Python
- Scrittura di Dati Strutturati in un File XLSX Utilizzando Python
- Formattazione dei Dati Excel per Report del Mondo Reale in Python
- Lettura e Aggiornamento di File Excel Esistenti in Python
- Combinazione di Operazioni di Lettura e Scrittura in un Unico Flusso di Lavoro
- Scegliere l'Approccio Python Giusto per la Creazione di File Excel
- Problemi Comuni e Soluzioni
- Domande Frequenti
1. Scenari Tipici per la Creazione di File Excel con Python
La creazione di file Excel con Python di solito avviene come parte di un sistema più ampio piuttosto che come un'attività autonoma. Gli scenari comuni includono:
- Generazione di report aziendali giornalieri, settimanali o mensili
- Esportazione dei risultati delle query del database per analisi o auditing
- Produzione di file Excel da servizi di backend o processi batch
- Automazione dello scambio di dati tra sistemi interni o partner esterni
In queste situazioni, Python viene spesso utilizzato per generare file Excel automaticamente, aiutando i team a ridurre lo sforzo manuale garantendo al contempo coerenza e ripetibilità dei dati.
2. Configurazione dell'Ambiente: Preparazione alla Creazione di File Excel in Python
In questo tutorial, utilizziamo Free Spire.XLS for Python per dimostrare le operazioni sui file Excel. Prima di generare file Excel con Python, assicurarsi che l'ambiente di sviluppo sia pronto.
Versione di Python
Qualsiasi versione moderna di Python 3.x è sufficiente per le attività di automazione di Excel.
Free Spire.XLS for Python può essere installato tramite pip:
pip install spire.xls.free
Puoi anche scaricare Free Spire.XLS for Python e includerlo manualmente nel tuo progetto.
La libreria funziona indipendentemente da Microsoft Excel, il che la rende adatta per ambienti server, processi pianificati e flussi di lavoro automatizzati in cui Excel non è installato.
3. Creazione di un Nuovo File Excel da Zero in Python
Questa sezione si concentra sulla creazione di un file Excel da zero utilizzando Python. L'obiettivo è definire una struttura di base della cartella di lavoro, inclusi fogli di lavoro e righe di intestazione, prima che vengano scritti i dati.
Generando il layout iniziale in modo programmatico, è possibile garantire che tutti i file di output condividano la stessa struttura e siano pronti per il successivo popolamento dei dati.
Esempio: Creazione di un Modello Excel Vuoto
from spire.xls import Workbook, FileFormat
# Inizializza una nuova cartella di lavoro
workbook = Workbook()
# Accedi al foglio di lavoro predefinito
sheet = workbook.Worksheets[0]
sheet.Name = "Modello"
# Aggiungi un titolo segnaposto
sheet.Range["B2"].Text = "Modello di Report Mensile"
# Salva il file Excel
workbook.SaveToFile("template.xlsx", FileFormat.Version2016)
workbook.Dispose()
L'anteprima del file modello:

In questo esempio:
- Workbook() crea una nuova cartella di lavoro Excel che contiene già tre fogli di lavoro predefiniti.
- Il primo foglio di lavoro è accessibile tramite Worksheets[0] e rinominato per definire la struttura di base.
- La proprietà Range[].Text scrive testo in una cella specifica, consentendo di impostare titoli o segnaposto prima che vengano aggiunti i dati reali.
- Il metodo SaveToFile() salva la cartella di lavoro in un file Excel. E FileFormat.Version2016 specifica la versione o il formato di Excel da utilizzare.
Creazione di File Excel con Più Fogli di Lavoro in Python
Nella generazione di Excel basata su Python, una singola cartella di lavoro può contenere più fogli di lavoro per organizzare logicamente i dati correlati. Ogni foglio di lavoro può memorizzare un diverso set di dati, un riepilogo o un risultato di elaborazione all'interno dello stesso file.
L'esempio seguente mostra come creare un file Excel con più fogli di lavoro e scrivere dati in ognuno di essi.
from spire.xls import Workbook, FileFormat
workbook = Workbook()
# Foglio di lavoro predefinito
data_sheet = workbook.Worksheets[0]
data_sheet.Name = "Dati Grezzi"
# Rimuovi il secondo foglio di lavoro predefinito
workbook.Worksheets.RemoveAt(1)
# Aggiungi un foglio di lavoro di riepilogo
summary_sheet = workbook.Worksheets.Add("Riepilogo")
summary_sheet.Range["A1"].Text = "Report di Riepilogo"
workbook.SaveToFile("multi_sheet_report.xlsx", FileFormat.Version2016)
workbook.Dispose()
Questo modello è comunemente combinato con flussi di lavoro di lettura/scrittura, in cui i dati grezzi vengono importati in un foglio di lavoro e i risultati elaborati vengono scritti in un altro.
Formati di File Excel nell'Automazione Python
Quando si creano file Excel in modo programmatico in Python, XLSX è il formato più comunemente utilizzato ed è completamente supportato dalle versioni moderne di Microsoft Excel. Supporta fogli di lavoro, formule, stili ed è adatto per la maggior parte degli scenari di automazione.
Oltre a XLSX, Spire.XLS for Python supporta la generazione di diversi formati Excel comuni, tra cui:
- XLSX – il formato predefinito per l'automazione moderna di Excel
- XLS – formato Excel legacy per la compatibilità con i sistemi più vecchi
- CSV – formato di testo semplice spesso utilizzato per lo scambio e l'importazione di dati
In questo articolo, tutti gli esempi utilizzano il formato XLSX, consigliato per la generazione di report, esportazioni di dati strutturati e file Excel basati su modelli. È possibile consultare l'enumerazione FileFormat per un elenco completo dei formati supportati.
4. Scrittura di Dati Strutturati in un File XLSX Utilizzando Python
Nelle applicazioni reali, i dati scritti in Excel raramente provengono da elenchi codificati. È più comunemente generato da query di database, risposte API o risultati di elaborazione intermedi.
Un modello tipico è trattare Excel come il formato di consegna finale per dati già strutturati.
Esempio Python: Generazione di un Report Mensile delle Vendite dai Dati dell'Applicazione
Supponiamo che la tua applicazione abbia già prodotto un elenco di record di vendita, in cui ogni record contiene informazioni sul prodotto e totali calcolati. In questo esempio, i dati di vendita sono rappresentati come un elenco di dizionari, simulando i record restituiti da un'applicazione o da un livello di servizio.
from spire.xls import Workbook
workbook = Workbook()
sheet = workbook.Worksheets[0]
sheet.Name = "Report Vendite"
headers = ["Prodotto", "Quantità", "Prezzo Unitario", "Importo Totale"]
for col, header in enumerate(headers, start=1):
sheet.Range[1, col].Text = header
# I dati provengono tipicamente da un database o da un livello di servizio
sales_data = [
{"product": "Laptop", "qty": 15, "price": 1200},
{"product": "Monitor", "qty": 30, "price": 250},
{"product": "Tastiera", "qty": 50, "price": 40},
{"product": "Mouse", "qty": 80, "price": 20},
{"product": "Cuffie", "qty": 100, "price": 10}
]
row = 2
for item in sales_data:
sheet.Range[row, 1].Text = item["product"]
sheet.Range[row, 2].NumberValue = item["qty"]
sheet.Range[row, 3].NumberValue = item["price"]
sheet.Range[row, 4].NumberValue = item["qty"] * item["price"]
row += 1
workbook.SaveToFile("monthly_sales_report.xlsx")
workbook.Dispose()
L'anteprima del report mensile delle vendite:

In questo esempio, i valori di testo come i nomi dei prodotti vengono scritti utilizzando la proprietà CellRange.Text, mentre i campi numerici utilizzano CellRange.NumberValue. Ciò garantisce che quantità e prezzi vengano memorizzati come numeri in Excel, consentendo calcoli, ordinamenti e formattazioni corretti.
Questo approccio si adatta in modo naturale alla crescita del set di dati e mantiene la logica di business separata dalla logica di output di Excel. Per ulteriori esempi di scrittura in Excel, fare riferimento a Come Automatizzare la Scrittura in Excel in Python.
5. Formattazione dei Dati Excel per Report del Mondo Reale in Python
Nei report del mondo reale, i file Excel vengono spesso consegnati direttamente agli stakeholder. I dati grezzi senza formattazione possono essere difficili da leggere o interpretare.
Le attività di formattazione comuni includono:
- Rendere le righe di intestazione visivamente distinte
- Applicazione di colori di sfondo o bordi
- Formattazione di numeri e valute
- Regolazione automatica della larghezza delle colonne
L'esempio seguente dimostra come queste comuni operazioni di formattazione possono essere applicate insieme per migliorare la leggibilità complessiva di un report Excel generato.
Esempio Python: Migliorare la Leggibilità dei Report Excel
from spire.xls import Workbook, Color, LineStyleType
# Carica il file Excel creato
workbook = Workbook()
workbook.LoadFromFile("monthly_sales_report.xlsx")
# Ottieni il primo foglio di lavoro
sheet = workbook.Worksheets[0]
# Formatta la riga di intestazione
header_range = sheet.Range.Rows[0] # Ottieni la prima riga utilizzata
header_range.Style.Font.IsBold = True
header_range.Style.Color = Color.get_LightBlue()
# Applica il formato valuta
sheet.Range["C2:D6"].NumberFormat = "$#,##0.00"
# Formatta le righe di dati
for i in range(1, sheet.Range.Rows.Count):
if i % 2 == 0:
row_range = sheet.Range[i, 1, i, sheet.Range.Columns.Count]
row_range.Style.Color = Color.get_LightGreen()
else:
row_range = sheet.Range[i, 1, i, sheet.Range.Columns.Count]
row_range.Style.Color = Color.get_LightYellow()
# Aggiungi bordi alle righe di dati
sheet.Range["A2:D6"].BorderAround(LineStyleType.Medium, Color.get_LightBlue())
# Adatta automaticamente la larghezza delle colonne
sheet.AllocatedRange.AutoFitColumns()
# Salva il file Excel formattato
workbook.SaveToFile("monthly_sales_report_formatted.xlsx")
workbook.Dispose()
L'anteprima del report mensile delle vendite formattato:

Sebbene la formattazione non sia strettamente richiesta per la correttezza dei dati, è spesso prevista nei report aziendali che vengono condivisi o archiviati. Consulta Come Formattare i Fogli di Lavoro Excel con Python per tecniche di formattazione più avanzate.
6. Lettura e Aggiornamento di File Excel Esistenti nell'Automazione Python
L'aggiornamento di un file Excel esistente di solito comporta l'individuazione della riga corretta prima di scrivere nuovi valori. Invece di aggiornare una cella fissa, gli script di automazione spesso scansionano le righe per trovare record corrispondenti e applicare aggiornamenti in modo condizionale.
Esempio Python: Aggiornamento di un File Excel
from spire.xls import Workbook
workbook = Workbook()
workbook.LoadFromFile("monthly_sales_report.xlsx")
sheet = workbook.Worksheets[0]
# Individua la riga di destinazione per nome del prodotto
for row in range(2, sheet.LastRow + 1):
product_name = sheet.Range[row, 1].Text
if product_name == "Laptop":
sheet.Range[row, 5].Text = "Revisionato"
break
sheet.Range["E1"].Text = "Stato"
workbook.SaveToFile("monthly_sales_report_updated.xlsx")
workbook.Dispose()
L'anteprima del report mensile delle vendite aggiornato:

7. Combinazione di Operazioni di Lettura e Scrittura in un Unico Flusso di Lavoro
Quando si lavora con file Excel importati, i dati grezzi spesso non sono immediatamente adatti per la creazione di report o per ulteriori analisi. I problemi comuni includono record duplicati, valori incoerenti o righe incomplete.
Questa sezione dimostra come leggere i dati Excel esistenti, normalizzarli e scrivere il risultato elaborato in un nuovo file utilizzando Python.
Nei sistemi di automazione del mondo reale, i file Excel vengono spesso utilizzati come vettori di dati intermedi piuttosto che come prodotti finali.
Possono essere importati da piattaforme esterne, modificati manualmente da team diversi o generati da sistemi legacy prima di essere ulteriormente elaborati.
Di conseguenza, i dati grezzi di Excel contengono spesso problemi come:
- Più righe per la stessa entità aziendale
- Valori incoerenti o non numerici
- Record vuoti o incompleti
- Strutture di dati non adatte per la creazione di report o analisi
Un requisito comune è leggere i dati Excel non raffinati, applicare regole di normalizzazione in Python e scrivere i risultati puliti in un nuovo foglio di lavoro su cui gli utenti a valle possono fare affidamento.
Esempio Python: Normalizzazione e Aggregazione dei Dati di Vendita Importati
In questo esempio, un file Excel di vendite grezze contiene più righe per prodotto.
L'obiettivo è generare un foglio di lavoro di riepilogo pulito in cui ogni prodotto appare una sola volta, con il suo importo totale delle vendite calcolato programmaticamente.
from spire.xls import Workbook, Color
workbook = Workbook()
workbook.LoadFromFile("raw_sales_data.xlsx")
source = workbook.Worksheets[0]
summary = workbook.Worksheets.Add("Riepilogo")
# Definisci le intestazioni per l'output normalizzato
summary.Range["A1"].Text = "Prodotto"
summary.Range["B1"].Text = "Vendite Totali"
product_totals = {}
# Leggi i dati grezzi e aggrega i valori per prodotto
for row in range(2, source.LastRow + 1):
product = source.Range[row, 1].Text
value = source.Range[row, 4].Value
# Salta le righe incomplete o non valide
if not product or value is None:
continue
try:
amount = float(value)
except ValueError:
continue
if product not in product_totals:
product_totals[product] = 0
product_totals[product] += amount
# Scrivi i risultati aggregati nel foglio di lavoro di riepilogo
target_row = 2
for product, total in product_totals.items():
summary.Range[target_row, 1].Text = product
summary.Range[target_row, 2].NumberValue = total
target_row += 1
# Crea una riga totale
summary.Range[summary.LastRow, 1].Text = "Totale"
summary.Range[summary.LastRow, 2].Formula = "=SUM(B2:B" + str(summary.LastRow - 1) + ")"
# Formatta il foglio di lavoro di riepilogo
summary.Range.Style.Font.FontName = "Arial"
summary.Range[1, 1, 1, summary.LastColumn].Style.Font.Size = 12
summary.Range[1, 1, 1, summary.LastColumn].Style.Font.IsBold = True
for row in range(2, summary.LastRow + 1):
for column in range(1, summary.LastColumn + 1):
summary.Range[row, column].Style.Font.Size = 10
summary.Range[summary.LastRow, 1, summary.LastRow, summary.LastColumn].Style.Color = Color.get_LightGray()
summary.Range.AutoFitColumns()
workbook.SaveToFile("normalized_sales_summary.xlsx")
workbook.Dispose()
L'anteprima del riepilogo delle vendite normalizzato:

Python gestisce la convalida dei dati, l'aggregazione e la logica di normalizzazione, mentre Excel rimane il formato di consegna finale per gli utenti aziendali, eliminando la necessità di pulizia manuale o complesse formule di fogli di calcolo.
Scegliere l'Approccio Python Giusto per la Creazione di File Excel
Python offre diversi modi per creare file Excel e l'approccio migliore dipende da come Excel viene utilizzato nel tuo flusso di lavoro.
Free Spire.XLS for Python è particolarmente adatto per scenari in cui:
- I file Excel vengono generati o aggiornati senza Microsoft Excel installato
- I file vengono prodotti da servizi di backend, processi batch o attività pianificate
- Hai bisogno di un controllo preciso sulla struttura del foglio di lavoro, sulla formattazione e sulle formule
- Excel viene utilizzato come formato di consegna o interscambio, non come strumento di analisi interattiva
Per l'esplorazione dei dati o l'analisi statistica, gli utenti di Python possono fare affidamento su altre librerie a monte, utilizzando al contempo librerie di generazione di Excel come Free Spire.XLS for per produrre file strutturati e pronti per la presentazione nella fase finale.
Questa separazione mantiene la logica di elaborazione dei dati in Python e la logica di presentazione in Excel, migliorando la manutenibilità e l'affidabilità.
Per una guida più dettagliata ed esempi, consultare il Tutorial di Spire.XLS for Python.
8. Problemi Comuni Durante la Creazione e la Scrittura di File Excel in Python
Durante l'automazione della generazione di Excel, si incontrano spesso diversi problemi pratici.
-
Errori di percorso file e autorizzazione
Verificare sempre che la directory di destinazione esista e che il processo disponga dell'accesso in scrittura prima di salvare i file.
-
Tipi di dati imprevisti
Controllare esplicitamente se i valori vengono scritti come testo o numeri per evitare errori di calcolo in Excel.
-
Sovrascritture accidentali di file
Utilizzare nomi di file con timestamp o directory di output per evitare di sovrascrivere i report esistenti.
-
Set di dati di grandi dimensioni
Quando si gestiscono grandi volumi di dati, scrivere le righe in sequenza ed evitare operazioni di formattazione non necessarie all'interno dei cicli.
Affrontare questi problemi in anticipo aiuta a garantire che l'automazione di Excel rimanga affidabile con l'aumentare delle dimensioni e della complessità dei dati.
9. Conclusione
La creazione di file Excel in Python è una soluzione pratica per automatizzare la creazione di report, l'esportazione di dati e gli aggiornamenti di documenti in ambienti aziendali reali. Combinando la creazione di file, la scrittura di dati strutturati, la formattazione e i flussi di lavoro di aggiornamento, l'automazione di Excel può andare oltre gli script una tantum e diventare parte di un sistema stabile.
Spire.XLS for Python fornisce un modo affidabile per implementare queste operazioni in ambienti in cui automazione, coerenza e manutenibilità sono essenziali. È possibile richiedere una licenza temporanea per sbloccare il pieno potenziale dell'automazione Python nell'elaborazione dei file Excel.
FAQ: Creazione di File Excel in Python
Python può creare file Excel senza che Microsoft Excel sia installato?
Sì. Librerie come Spire.XLS for Python funzionano indipendentemente da Microsoft Excel, rendendole adatte per server, ambienti cloud e flussi di lavoro automatizzati.
Python è adatto per la generazione di file Excel di grandi dimensioni?
Python può generare file Excel di grandi dimensioni in modo efficace, a condizione che i dati vengano scritti in sequenza e che vengano evitate operazioni di formattazione non necessarie all'interno dei cicli.
Come posso evitare di sovrascrivere i file Excel esistenti?
Un approccio comune è utilizzare nomi di file con timestamp o directory di output dedicate quando si salvano i report Excel generati.
Python può aggiornare i file Excel creati da altri sistemi?
Sì. Python può leggere, modificare ed estendere i file Excel creati da altre applicazioni, a condizione che il formato del file sia supportato.