
Visualizzare le timeline dei progetti è importante per una pianificazione e un tracciamento efficaci. In questo post del blog, imparerai come creare un diagramma di Gantt in Excel utilizzando C#. Con solo poche righe di codice, puoi automatizzare la generazione di diagrammi di Gantt dinamici e visivamente attraenti. Che tu stia costruendo uno strumento di gestione dei progetti o lavorando su un report interno, questa guida ti mostrerà come trasformare i dati delle attività in una timeline chiara e professionale—completamente personalizzabile e pronta per l’esportazione in Excel, PDF o formati immagine. Iniziamo!
Questo articolo tratta i seguenti argomenti:
- C# Excel Library per Creare Grafici di Gantt
- Come costruire un diagramma di Gantt utilizzando grafici a barre impilate
- Create a Gantt Chart in Excel using C#
- Personalizza il diagramma di Gantt in Excel utilizzando C#
- Risorse gratuite
Libreria C# Excel per creare grafici di Gantt
Aspose.Cells for .NET è una potente libreria Excel che semplifica il processo di creazione di grafici di Gantt in Excel. Fornisce funzionalità robuste per manipolare i file Excel in modo programmatico. Con Aspose.Cells, gli sviluppatori possono facilmente creare, modificare e personalizzare grafici e diagrammi. Questa libreria supporta vari formati Excel e offre funzionalità avanzate, rendendola una scelta ideale per i project manager e gli sviluppatori.
Aspose.Cells for .NET si distingue per la sua facilità di integrazione e flessibilità. Ecco alcune caratteristiche chiave:
- API completo: Accesso a un’ampia gamma di funzionalità di Excel.
- Personalizzazione Avanzata: Adatta grafici e diagrammi per soddisfare esigenze specifiche.
- Alta Performance: Gestire in modo efficiente grandi set di dati senza compromettere la velocità.
- Supporto a più formati: Lavora con vari formati Excel, inclusi XLSX, XLS e CSV.
Segui these simple steps to get started with Aspose.Cells for .NET:
- Scarica la libreria da releases.
- Installalo tramite NuGet Package Manager con il seguente comando:
PM> Install-Package Aspose.Cells
Come costruire un diagramma di Gantt utilizzando diagrammi a barre impilate
Aspose.Cells non ha un tipo di grafico Gantt integrato perché Excel stesso non offre un tipo di grafico Gantt nativo. Tuttavia, i grafici Gantt in Excel vengono solitamente creati utilizzando grafici a barre impilate combinati con formattazione personalizzata — e Aspose.Cells supporta questo approccio in modo programmatico.
Cosa puoi fare con Aspose.Cells:
Puoi automatizzare la creazione di un diagramma di Gantt in Excel creando
- Impostazione dei dati del compito (nome del compito, data di inizio, durata).
- Aggiungere un grafico a barre impilate.
- Utilizzando una serie per "offset di partenza" (nascosto) e un’altra per "durata" (visibile).
- Formattare il grafico per somigliare a un grafico di Gantt.
Esempio di dati del diagramma di Gantt
| 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 C#
Segui questi passaggi per creare un diagramma di Gantt in Excel utilizzando C# con Aspose.Cells for .NET:
- Carica un file Excel esistente utilizzando la classe
Workbook
. - Accedi al primo foglio di lavoro utilizzando
workbook.Worksheets[0]
. - Aggiungi un grafico utilizzando
ChartType.BarStacked
per simulare un layout di Gantt chart. - Aggiungi offset e durata come serie.
- Imposta le etichette delle categorie utilizzando la proprietà
CategoryData
. - Imposta stili e impostazioni degli assi.
- Salva il file di lavoro utilizzando
workbook.Save()
.
Ecco un frammento di codice C# che implementa i passaggi sopra:
using Aspose.Cells;
using Aspose.Cells.Charts;
// Carica il file Excel
Workbook workbook = new Workbook("sample-data.xlsx");
Worksheet sheet = workbook.Worksheets[0];
// Aggiungi il diagramma di Gantt
int chartIndex = sheet.Charts.Add(ChartType.BarStacked, 7, 0, 30, 10);
Chart chart = sheet.Charts[chartIndex];
chart.Title.Text = "Gantt Chart";
// Aggiungi offset e durata come serie
chart.NSeries.Add("D2:D6", true); // Start Offset
chart.NSeries.Add("C2:C6", true); // Duration
// Imposta i nomi delle attività come categorie
chart.NSeries.CategoryData = "A2:A6";
// Rendi invisibili le barre di offset
chart.NSeries[0].Area.Formatting = FormattingType.None;
// Stilizzare le barre di durata
chart.NSeries[1].Area.Formatting = FormattingType.Custom;
chart.NSeries[1].Area.ForegroundColor = Color.SteelBlue;
chart.NSeries[1].DataLabels.ShowValue = true;
// Impostazioni degli assi
chart.CategoryAxis.IsPlotOrderReversed = true;
chart.CategoryAxis.Title.Text = "Tasks";
chart.ValueAxis.Title.Text = "Days from Start";
chart.ValueAxis.MajorGridLines.IsVisible = true;
// Nascondi legenda
chart.ShowLegend = false;
// Ridimensiona il grafico (opzionale)
chart.ChartObject.Width = 700;
chart.ChartObject.Height = 400;
// Save the result
workbook.Save("GanttChartResult.xlsx", SaveFormat.Xlsx);

Create a Gantt Chart in Excel using C#
Personalizzare il diagramma di Gantt in Excel utilizzando C#
Puoi migliorare il tuo diagramma di Gantt utilizzando le seguenti funzionalità di personalizzazione in Aspose.Cells for .NET:
Colori del Bar Imposta un colore solido per le barre di durata:
chart.NSeries[1].Area.ForegroundColor = Color.SteelBlue;
Offset trasparenti Rendi le barre di offset (invisibili) completamente trasparenti.
chart.NSeries[0].Area.Formatting = FormattingType.None;
Ordine di incarico Inverti l’asse Y per mostrare i compiti dall’alto verso il basso:
chart.CategoryAxis.IsPlotOrderReversed = true;
Etichette dei dati Mostra la durata direttamente su ciascun taskbar:
chart.NSeries[1].DataLabels.ShowValue = true;
Controllo Legenda Rimuovi o riposiziona la legenda del grafico.
chart.ShowLegend = false; // Or reposition: chart.Legend.Position = LegendPositionType.Bottom;
Stile Bar Individuale Imposta colori personalizzati per ogni attività.
var series = chart.NSeries[1]; series.Points[0].Area.ForegroundColor = Color.Green; series.Points[1].Area.ForegroundColor = Color.Red;
Dimensioni del grafico Ridimensiona e riposiziona il grafico:
chart.ChartObject.Width = 700; chart.ChartObject.Height = 400;
Opzioni di esportazione Salva il grafico in Excel, PDF o immagine.
workbook.Save("GanttChart.xlsx"); workbook.Save("GanttChart.pdf", SaveFormat.Pdf); chart.ToImage("chart.png", ImageFormat.Png);
Ecco un frammento di codice C# che implementa alcune delle personalizzazioni sopra indicate:
using Aspose.Cells;
using Aspose.Cells.Charts;
// Inizializza cartella di lavoro e foglio di calcolo
Workbook workbook = new Workbook();
Worksheet sheet = workbook.Worksheets[0];
sheet.Name = "Gantt Data";
// Sample Task Data with Dates
DateTime projectStart = new DateTime(2025, 4, 1);
// Headers
sheet.Cells["A1"].PutValue("Task");
sheet.Cells["B1"].PutValue("Start Date");
sheet.Cells["C1"].PutValue("Duration (Days)");
sheet.Cells["D1"].PutValue("Start Offset");
sheet.Cells["E1"].PutValue("End Date");
// Data
string[,] 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" }
};
for (int i = 0; i < tasks.GetLength(0); i++)
{
int row = i + 1 + 1; // Start from row 2
sheet.Cells[row, 0].PutValue(tasks[i, 0]); // Task Name
sheet.Cells[row, 1].PutValue(DateTime.Parse(tasks[i, 1])); // Start Date
sheet.Cells[row, 2].PutValue(int.Parse(tasks[i, 2])); // Duration
// Offset: = StartDate - ProjectStartDate
sheet.Cells[row, 3].Formula = $"=B{row + 1} - DATE(2025,4,1)";
sheet.Cells[row, 4].Formula = $"=B{row + 1} + C{row + 1}";
}
// Autofit
sheet.AutoFitColumns();
// Aggiungi un grafico
int chartIndex = sheet.Charts.Add(ChartType.BarStacked, 10, 0, 30, 10);
Chart chart = sheet.Charts[chartIndex];
chart.Title.Text = "Project Gantt Chart";
// Aggiungi Serie: Offset (invisibile), Durata (visibile)
chart.NSeries.Add("D2:D6", true); // Offset
chart.NSeries.Add("C2:C6", true); // Duration
// Imposta le etichette delle categorie
chart.NSeries.CategoryData = "A2:A6";
// Rendi la serie Offset trasparente
chart.NSeries[0].Area.Formatting = FormattingType.None;
// Color each task bar differently
Series durationSeries = chart.NSeries[1];
for (int i = 0; i < durationSeries.Points.Count; i++)
{
durationSeries.Points[i].Area.ForegroundColor = Color.FromArgb(255, 100 + i * 30, 150); // Gradient color variation
}
// Show data labels
chart.NSeries[1].DataLabels.ShowValue = true;
// Impostazioni dell'asse
chart.CategoryAxis.Title.Text = "Tasks";
chart.CategoryAxis.IsPlotOrderReversed = true;
chart.ValueAxis.Title.Text = "Days from Project Start";
chart.ValueAxis.MajorGridLines.IsVisible = true;
chart.ValueAxis.MinValue = 0;
chart.ValueAxis.MajorUnit = 5;
// Rimuovi la legenda
chart.ShowLegend = false;
// Ridimensiona il grafico
chart.ChartObject.Width = 700;
chart.ChartObject.Height = 400;
// Esporta in Excel
workbook.Save("CustomizedGanttChart.xlsx", SaveFormat.Xlsx);

Personalizza il diagramma di Gantt in Excel utilizzando C#
Ottieni una licenza gratuita
Interessato a esplorare i prodotti Aspose? Visita la license page per ottenere una licenza temporanea gratuita. È facile iniziare e sbloccare il pieno potenziale di Aspose.Cells per i tuoi progetti!
Gantt Chart Excel: Risorse gratuite
Non fermarti qui! Esplora risorse aggiuntive per migliorare ulteriormente la tua comprensione di Aspose.Cells. Queste risorse ti aiuteranno a padroneggiare l’automazione di Excel e a rafforzare le tue competenze.
Conclusione
In questo post del blog, abbiamo esplorato come creare un diagramma di Gantt in Excel usando C#. Aspose.Cells for .NET semplifica questo processo con le sue potenti caratteristiche e flessibilità. Ti incoraggiamo a esplorare di più su Aspose.Cells for .NET per migliorare le tue capacità di gestione dei progetti.
Se hai domande o hai bisogno di ulteriore assistenza, non esitare a contattarci nel nostro free support forum.