
La visualizzazione delle attività su una linea del tempo aiuta a gestire meglio i progetti. In questo articolo, imparerai come creare un diagramma di Gantt in Excel utilizzando Python con Aspose.Cells for Python tramite .NET. Con solo poche righe di codice, puoi trasformare i semplici dati delle attività in una linea del tempo visiva dinamica e pulita, ideale per report, cruscotti e documenti di pianificazione. Facciamo un passo alla volta.
Questo articolo copre i seguenti argomenti:
- Libreria Python Excel per diagrammi di Gantt
- Gantt Chart Using Stacked Bar Charts
- Create a Gantt Chart in Excel using Python
- Personalizza il grafico di Gantt in Excel utilizzando Python
- Esplora Risorse Gratuite
Libreria Excel Python per grafici Gantt
Aspose.Cells for Python via .NET è una potente libreria per lavorare con file Excel in Python. Ti consente di creare, modificare e formattare fogli di calcolo in modo programmatico—comprese le grafici come i grafici di Gantt.
Caratteristiche principali:
- Pieno controllo sui grafici e sui dati di Excel.
- Supporto per XLSX, XLS, CSV e PDF.
- Alta prestazione con file di grandi dimensioni.
- Opzioni di personalizzazione del grafico Rich.
Per iniziare, installa la libreria con:
pip install aspose-cells
Puoi anche scaricarlo da releases.
Grafici di Gantt con grafici a barre impilate
Excel non fornisce un tipo di diagramma di Gantt integrato, e nemmeno Aspose.Cells. Ma puoi comunque crearne uno utilizzando un diagramma a barre impilate con un po’ di formattazione. Questa è una tecnica comune, e Aspose.Cells la supporta completamente tramite codice.
Cosa puoi fare con Aspose.Cells
Puoi facilmente automatizzare un diagramma di Gantt in Excel seguendo questi passaggi:
- Inserisci i dati del compito (nome del compito, data di inizio e durata).
- Inserisci un grafico a barre impilate.
- Usa una serie per il "offset di inizio" (invisibile) e un’altra per la "durata" (visibile).
- Formatta il grafico per farlo sembrare un grafico di Gantt.
Questo ti offre una timeline dall’aspetto professionale che puoi generare dinamicamente.
Sample Task Data
Ecco un esempio di tabella che utilizzeremo:
Task | Start Date | Duration | Start Offset |
---|---|---|---|
Task 1 | 2025-04-01 | 3 | 0 |
Task 2 | 2025-04-03 | 6 | 2 |
Task 3 | 2025-04-08 | 10 | 7 |
Task 4 | 2025-04-18 | 3 | 17 |
Task 5 | 2025-04-21 | 5 | 20 |
Create a Gantt Chart in Excel using Python
Segui questi passaggi per creare un grafico di Gantt in Excel utilizzando Python con Aspose.Cells for Python tramite .NET:
- Carica un file di dati Excel esistente utilizzando la classe
Workbook
. - Ottieni il primo foglio di lavoro con
workbook.worksheets[0]
. - Aggiungi un grafico a barre impilate per aggiungere un layout di diagramma di Gantt.
- Aggiungi due serie di dati: una per l’offset e una per la durata.
- Imposta i nomi dei compiti come etichette di categoria.
- Regola gli stili e le impostazioni degli assi per formattare il grafico.
- Salva il file utilizzando il metodo
workbook.save()
.
Ecco un frammento di codice Python che esegue tutti questi passaggi:
import aspose.cells as cells
from aspose.pydrawing import Color
# Carica il file Excel
workbook = cells.Workbook("sample-data.xlsx")
sheet = workbook.worksheets.get(0)
# Aggiungi il Diagramma di Gantt
chart_index = sheet.charts.add(cells.charts.ChartType.BAR_STACKED, 7, 0, 30, 10)
chart = sheet.charts[chart_index]
chart.title.text = "Gantt Chart"
# Aggiungi offset e durata come serie
chart.n_series.add("D2:D6", True) # Start Offset
chart.n_series.add("C2:C6", True) # Duration
# Imposta i nomi dei compiti come categorie
chart.n_series.category_data = "A2:A6"
# Rendi invisibili le barre di offset
chart.n_series[0].area.formatting = cells.charts.FormattingType.NONE
# Stile barre di durata
chart.n_series[1].area.formatting = cells.charts.FormattingType.CUSTOM
chart.n_series[1].area.foreground_color = Color.steel_blue
chart.n_series[1].data_labels.show_value = True
# Impostazioni degli assi
chart.category_axis.is_plot_order_reversed = True
chart.category_axis.title.text = "Tasks"
chart.value_axis.title.text = "Days from Start"
chart.value_axis.major_grid_lines.is_visible = True
# Nascondi la legenda
chart.show_legend = False
# Ridimensiona il grafico (opzionale)
chart.chart_object.width = 700
chart.chart_object.height = 400
# Save the result
workbook.save("GanttChartResult.xlsx", cells.SaveFormat.XLSX)
Questo genererà un grafico in stile Gantt pulito con i tuoi dati di attività.

Create a Gantt Chart in Excel using Python
Personalizza il Diagramma di Gantt
Puoi personalizzare il tuo diagramma di Gantt utilizzando le seguenti opzioni disponibili:
Colori del Bar
Imposta un colore solido per le barre di durata:
chart.n_series[1].area.foreground_color = Color.steel_blue
Offset trasparente
Rendi le barre di offset (invisibili) completamente trasparenti.
chart.n_series[0].area.formatting = cells.charts.FormattingType.NONE
Ordine di incarico
Inverti l’asse Y per mostrare i compiti dall’alto verso il basso:
chart.category_axis.is_plot_order_reversed = True
Data Labels
Mostra la durata direttamente su ogni barra delle attività:
chart.n_series[1].data_labels.show_value = True
Controllo Legenda
Rimuovi o riposiziona la leggenda del grafico.
chart.show_legend = False
# Or reposition:
chart.legend.position = cells.charts.LegendPositionType.BOTTOM
Imposta colori personalizzati per la barra
chart.n_series[1].points[0].area.foreground_color = Color.green
chart.n_series[1].points[1].area.foreground_color = Color.red
Ridimensiona il grafico
chart.chart_object.width = 700
chart.chart_object.height = 400
Esporta in PDF o Immagine
workbook.save("gantt_chart.pdf", cells.SaveFormat.PDF)
chart.to_image("chart.png")
Il seguente frammento di codice Python applica alcune delle personalizzazioni menzionate sopra:
import aspose.cells as cells
from aspose.pydrawing import Color
import datetime
# Inizializza cartella di lavoro e foglio di lavoro
workbook = cells.Workbook()
sheet = workbook.worksheets.get(0)
sheet.name = "Gantt Data"
# Data di inizio del progetto
project_start = datetime.date(2025, 4, 1)
# Headers
sheet.cells.get("A1").put_value("Task")
sheet.cells.get("B1").put_value("Start Date")
sheet.cells.get("C1").put_value("Duration (Days)")
sheet.cells.get("D1").put_value("Start Offset")
sheet.cells.get("E1").put_value("End Date")
# Dati del compito: [Nome del Compito, Data di Inizio, Durata]
tasks = [
["Task 1", "2025-04-01", "3"],
["Task 2", "2025-04-03", "6"],
["Task 3", "2025-04-08", "10"],
["Task 4", "2025-04-18", "3"],
["Task 5", "2025-04-21", "5"]
]
# Compila i dati nel foglio
for i, task in enumerate(tasks):
row = i + 2 # Start from row 2
sheet.cells.get(row, 0).put_value(task[0]) # Task Name
sheet.cells.get(row, 1).put_value(datetime.datetime.strptime(task[1], "%Y-%m-%d").date()) # Start Date
sheet.cells.get(row, 2).put_value(int(task[2])) # Duration
# Formule di Offset e Data di Fine
sheet.cells.get(row, 3).formula = f"=B{row + 1} - DATE(2025,4,1)" # Offset
sheet.cells.get(row, 4).formula = f"=B{row + 1} + C{row + 1}" # End Date
# Adatta automaticamente le colonne
sheet.auto_fit_columns()
# Aggiungi diagramma di Gantt
chart_index = sheet.charts.add(cells.charts.ChartType.BAR_STACKED, 10, 0, 30, 10)
chart = sheet.charts[chart_index]
chart.title.text = "Project Gantt Chart"
# Aggiungi serie di dati: Offset (invisibile), Durata (visibile)
chart.n_series.add("D2:D6", True) # Offset
chart.n_series.add("C2:C6", True) # Duration
# Imposta i nomi delle attività come etichette di categoria
chart.n_series.category_data = "A2:A6"
# Rendi invisibili le barre di offset
chart.n_series[0].area.formatting = cells.charts.FormattingType.NONE
# Colorare ogni barra di attività in modo diverso
duration_series = chart.n_series[1]
for i in range(duration_series.points.count):
red = 100 + i * 30
duration_series.points[i].area.foreground_color = Color.from_argb(255, red, 150)
# Mostra le etichette dei dati sulle barre di durata
duration_series.data_labels.show_value = True
# Configurazione dell'asse
chart.category_axis.title.text = "Tasks"
chart.category_axis.is_plot_order_reversed = True
chart.value_axis.title.text = "Days from Project Start"
chart.value_axis.major_grid_lines.is_visible = True
chart.value_axis.min_value = 0
chart.value_axis.major_unit = 5.0
# Nascondi legenda
chart.show_legend = False
# Ridimensiona il grafico
chart.chart_object.width = 700
chart.chart_object.height = 400
# Save output
workbook.save("CustomizedGanttChart.xlsx", cells.SaveFormat.XLSX)

Personalizza il diagramma di Gantt in Excel utilizzando Python
Ottieni una Licenza Gratuita
Puoi richiedere una licenza temporanea gratuita per esplorare tutte le funzionalità di Aspose.Cells senza alcuna limitazione o filigrana.
Risorse aggiuntive
Vuoi esplorare di più? I link qui sotto ti aiuteranno ad approfondire Aspose.Cells for Python tramite .NET. Che tu stia cercando guide dettagliate, riferimenti API o strumenti gratuiti, queste risorse ti coprono.
Parole Finali
Creare un diagramma di Gantt in Excel con Python è semplice ed efficace utilizzando Aspose.Cells for Python tramite .NET. Ti offre il completo controllo sul design del grafico e sull’automazione di Excel. Provalo con i dati del tuo progetto e vedrai la differenza.
Se hai domande, non esitare a contattarci nel nostro free support forum.