Create Gantt Chart in Excel using C#

La visualisation des délais de projet est importante pour une planification et un suivi efficaces. Dans cet article de blog, vous apprendrez comment créer un diagramme de Gantt dans Excel en utilisant C#. Avec juste quelques lignes de code, vous pouvez automatiser la génération de diagrammes de Gantt dynamiques et visuellement attrayants. Que vous construisiez un outil de gestion de projet ou travailliez sur des rapports internes, ce guide vous montrera comment transformer les données des tâches en un calendrier clair et professionnel—entièrement personnalisable et prêt à être exporté vers Excel, PDF ou des formats d’image. Commençons !

Cet article couvre les sujets suivants :

Bibliothèque Excel C# pour créer des diagrammes de Gantt

Aspose.Cells for .NET est une bibliothèque Excel puissante qui simplifie le processus de création de diagrammes de Gantt dans Excel. Elle fournit des fonctionnalités robustes pour manipuler des fichiers Excel de manière programmatique. Avec Aspose.Cells, les développeurs peuvent facilement créer, modifier et personnaliser des graphiques et des diagrammes. Cette bibliothèque prend en charge divers formats Excel et offre des fonctionnalités avancées, ce qui en fait un choix idéal pour les chefs de projet et les développeurs.

Aspose.Cells for .NET se distingue par sa facilité d’intégration et sa flexibilité. Voici quelques fonctionnalités clés :

  • API complet : Accédez à une large gamme de fonctionnalités Excel.
  • Personnalisation avancée : Adaptez les graphiques et les diagrammes pour répondre à des besoins spécifiques.
  • Haute performance : Gérez efficacement de grands ensembles de données sans compromettre la vitesse.
  • Prise en charge de plusieurs formats : Travaillez avec divers formats Excel, y compris XLSX, XLS et CSV.

Suivez ces étapes simples pour commencer avec Aspose.Cells for .NET :

  1. Téléchargez la bibliothèque depuis les releases.
  2. Installez-le via NuGet Package Manager avec la commande suivante :
    PM> Install-Package Aspose.Cells
    

Comment créer un diagramme de Gantt en utilisant des graphiques à barres empilées

Aspose.Cells n’a pas de type de diagramme de Gantt intégré car Excel lui-même n’offre pas non plus de type de diagramme de Gantt natif. Cependant, les diagrammes de Gantt dans Excel sont généralement créés en utilisant des graphiques à barres empilées combinés avec un formatage personnalisé — et Aspose.Cells prend en charge cette approche par programmation.

Ce que vous pouvez faire avec Aspose.Cells :

Vous pouvez automatiser la création d’un diagramme de Gantt dans Excel en

  • Configuration des données de tâche (nom de la tâche, date de début, durée).
  • Ajouter un histogramme empilé.
  • Utiliser une série pour "décalage de départ" (caché) et une autre pour "durée" (visible).
  • Mettre en forme le tableau pour qu`il ressemble à un diagramme de Gantt.

Données de graphique de Gantt d’exemple


| 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#

Suivez ces étapes pour créer un diagramme de Gantt dans Excel en utilisant C# avec Aspose.Cells for .NET :

  1. Charger un fichier Excel existant en utilisant la classe Workbook.
  2. Accédez à la première feuille de calcul en utilisant workbook.Worksheets[0].
  3. Ajoutez un graphique en utilisant le ChartType.BarStacked pour simuler une mise en page de diagramme de Gantt.
  4. Ajoutez le décalage et la durée en tant que séries.
  5. Définissez les étiquettes de catégorie en utilisant la propriété CategoryData.
  6. Définir les styles et les paramètres de l’axe.
  7. Enregistrez le classeur en utilisant workbook.Save().

Voici un extrait de code C# qui implémente les étapes ci-dessus :

using Aspose.Cells;
using Aspose.Cells.Charts;

// Charger le fichier Excel
Workbook workbook = new Workbook("sample-data.xlsx");
Worksheet sheet = workbook.Worksheets[0];

// Ajouter un diagramme de Gantt
int chartIndex = sheet.Charts.Add(ChartType.BarStacked, 7, 0, 30, 10);
Chart chart = sheet.Charts[chartIndex];
chart.Title.Text = "Gantt Chart";

// Ajouter un décalage et une durée en tant que série
chart.NSeries.Add("D2:D6", true); // Start Offset
chart.NSeries.Add("C2:C6", true); // Duration

// Définir les noms des tâches en tant que catégories
chart.NSeries.CategoryData = "A2:A6";

// Rendre les barres de décalage invisibles
chart.NSeries[0].Area.Formatting = FormattingType.None;

// Style des barres de durée
chart.NSeries[1].Area.Formatting = FormattingType.Custom;
chart.NSeries[1].Area.ForegroundColor = Color.SteelBlue;
chart.NSeries[1].DataLabels.ShowValue = true;

// Paramètres d'axe
chart.CategoryAxis.IsPlotOrderReversed = true;
chart.CategoryAxis.Title.Text = "Tasks";
chart.ValueAxis.Title.Text = "Days from Start";
chart.ValueAxis.MajorGridLines.IsVisible = true;

// Cacher la légende
chart.ShowLegend = false;

// Redimensionner le graphique (facultatif)
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#

Create a Gantt Chart in Excel using C#

Personnaliser un diagramme de Gantt dans Excel en utilisant C#

Vous pouvez améliorer votre diagramme de Gantt en utilisant les fonctionnalités de personnalisation suivantes dans Aspose.Cells for .NET :

  • Couleurs de barre Définir une couleur unie pour les barres de durée :

    chart.NSeries[1].Area.ForegroundColor = Color.SteelBlue;
    
  • Offsets transparents Rendez les barres de décalage (invisibles) complètement transparentes.

    chart.NSeries[0].Area.Formatting = FormattingType.None;
    
  • Ordre de tâche Inversez l’axe Y pour afficher les tâches de haut en bas :

    chart.CategoryAxis.IsPlotOrderReversed = true;
    
  • Étiquettes de données Afficher la durée directement sur chaque barre des tâches :

    chart.NSeries[1].DataLabels.ShowValue = true;
    
  • Légende de contrôle Supprimez ou repositionnez la légende du graphique.

    chart.ShowLegend = false;
    // Or reposition: chart.Legend.Position = LegendPositionType.Bottom;
    
  • Style de barre individuel Définir des couleurs personnalisées pour chaque tâche.

    var series = chart.NSeries[1];
    series.Points[0].Area.ForegroundColor = Color.Green;
    series.Points[1].Area.ForegroundColor = Color.Red;
    
  • Dimensions du graphique Redimensionner et repositionner le graphique :

    chart.ChartObject.Width = 700;
    chart.ChartObject.Height = 400;
    
  • Options d’exportation Enregistrez le graphique au format Excel, PDF ou image.

    workbook.Save("GanttChart.xlsx");
    workbook.Save("GanttChart.pdf", SaveFormat.Pdf);
    chart.ToImage("chart.png", ImageFormat.Png);
    

Voici un extrait de code C# qui implémente quelques-unes des personnalisations mentionnées ci-dessus :

using Aspose.Cells;
using Aspose.Cells.Charts;

// Initialiser le classeur et la feuille de calcul
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);

// En-têtes
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: = DateDébut - DateDébutProjet
    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();

// Add a chart
int chartIndex = sheet.Charts.Add(ChartType.BarStacked, 10, 0, 30, 10);
Chart chart = sheet.Charts[chartIndex];
chart.Title.Text = "Project Gantt Chart";

// Ajouter Série : Décalage (invisible), Durée (visible)
chart.NSeries.Add("D2:D6", true); // Offset
chart.NSeries.Add("C2:C6", true); // Duration

// Définir des étiquettes de catégorie
chart.NSeries.CategoryData = "A2:A6";

// Rendre la série Offset transparente
chart.NSeries[0].Area.Formatting = FormattingType.None;

// Coloriez chaque barre de tâche différemment.
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
}

// Afficher les étiquettes de données
chart.NSeries[1].DataLabels.ShowValue = true;


// Paramètres de l'axe
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;

// Retirer la légende
chart.ShowLegend = false;

// Redimensionner le graphique
chart.ChartObject.Width = 700;
chart.ChartObject.Height = 400;

// Exporter vers Excel
workbook.Save("CustomizedGanttChart.xlsx", SaveFormat.Xlsx);
Personnaliser un diagramme de Gantt dans Excel en utilisant C#

Personnaliser le diagramme de Gantt dans Excel en utilisant C#

Obtenez une licence gratuite

Intéressé par l’exploration des produits Aspose ? Visitez la license page pour obtenir une licence temporaire gratuite. C`est facile de commencer et de débloquer tout le potentiel d’Aspose.Cells pour vos projets !

Gantt Chart Excel : Ressources Gratuites

Ne vous arrêtez pas ici ! Explorez des ressources supplémentaires pour améliorer votre compréhension d’Aspose.Cells. Ces ressources vous aideront à maîtriser l’automatisation Excel et à renforcer vos compétences.

Conclusion

Dans cet article de blog, nous avons exploré comment créer un diagramme de Gantt dans Excel en utilisant C#. Aspose.Cells for .NET simplifie ce processus grâce à ses fonctionnalités puissantes et sa flexibilité. Nous vous encourageons à explorer davantage Aspose.Cells for .NET afin d’améliorer vos capacités en gestion de projet.

Si vous avez des questions ou avez besoin d’une assistance supplémentaire, n’hésitez pas à nous contacter sur notre forum de support gratuit.

Voir aussi