Create Gantt Chart in Excel using Python

La visualisation des tâches sur une ligne du temps aide à mieux gérer les projets. Dans cet article, vous apprendrez comment créer un diagramme de Gantt dans Excel en utilisant Python avec Aspose.Cells for Python via .NET. Avec juste quelques lignes de code, vous pouvez transformer des données de tâches simples en une ligne du temps visuelle dynamique et propre, idéale pour des rapports, des tableaux de bord et des documents de planification. Passons en revue cela étape par étape.

Cet article couvre les sujets suivants :

Bibliothèque Python Excel pour les graphiques de Gantt

Aspose.Cells for Python via .NET est une bibliothèque puissante pour travailler avec des fichiers Excel en Python. Elle vous permet de créer, modifier et formater des feuilles de calcul par programme, y compris des graphiques tels que les graphiques de Gantt.

Caractéristiques principales :

  • Contrôle total sur les graphiques et les données Excel.
  • Support pour XLSX, XLS, CSV et PDF.
  • Performances élevées avec de grands fichiers.
  • Options de personnalisation du graphique riche.

Pour commencer, veuillez installer la bibliothèque avec :

pip install aspose-cells

Vous pouvez également le télécharger depuis les releases.

Diagrammes de Gantt avec des diagrammes en barres empilées

Excel ne fournit pas de type de diagramme de Gantt intégré, et Aspose.Cells non plus. Mais vous pouvez toujours en créer un en utilisant un diagramme à barres empilées avec un peu de mise en forme. C’est une technique courante, et Aspose.Cells la prend entièrement en charge par le biais de code.

Ce que vous pouvez faire avec Aspose.Cells

Vous pouvez facilement automatiser un diagramme de Gantt dans Excel en procédant comme suit :

  • Entrez les données de la tâche (nom de la tâche, date de début et durée).
  • Insérez un graphique à barres empilées.
  • Utilisez une série pour le "décalage de départ" (invisible) et une autre pour la "durée" (visible).
  • Formatez le tableau pour qu’il ressemble à un graphique de Gantt.

Ceci vous donne une chronologie au look professionnel que vous pouvez générer dynamiquement.

Sample Task Data

Voici un tableau d’exemple que nous allons utiliser :

TâcheDate de débutDuréeDécalage de début
Task 12025-04-0130
Task 22025-04-0362
Task 32025-04-08107
Task 42025-04-18317
Task 52025-04-21520

Create a Gantt Chart in Excel using Python

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

  • Charger un fichier de données Excel existant en utilisant la classe Workbook.
  • Obtenez la première feuille de calcul avec workbook.worksheets[0].
  • Ajouter un graphique à barres empilées pour ajouter une mise en page de graphique de Gantt.
  • Ajoutez deux séries de données : une pour le décalage et une pour la durée.
  • Définir les noms de tâche en tant qu’étiquettes de catégorie.
  • Ajustez les styles et les paramètres des axes pour formater le graphique.
  • Enregistrez le fichier en utilisant la méthode workbook.save() .

Voici un extrait de code Python qui effectue toutes ces étapes :

import aspose.cells as cells
from aspose.pydrawing import Color

# Charger le fichier Excel
workbook = cells.Workbook("sample-data.xlsx")
sheet = workbook.worksheets.get(0)

# Ajouter un diagramme de 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"

# Ajouter décalage et durée comme série
chart.n_series.add("D2:D6", True)  # Start Offset
chart.n_series.add("C2:C6", True)  # Duration

# Définir les noms de tâches comme catégories
chart.n_series.category_data = "A2:A6"

# Rendre les barres de décalage invisibles
chart.n_series[0].area.formatting = cells.charts.FormattingType.NONE

# Style duration bars
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

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

# Cacher la légende
chart.show_legend = False

# Redimensionner le graphique (optionnel)
chart.chart_object.width = 700
chart.chart_object.height = 400

# Save the result
workbook.save("GanttChartResult.xlsx", cells.SaveFormat.XLSX)

Cela générera un graphique de type Gantt propre avec vos données de tâches.

Create a Gantt Chart in Excel using Python

Create a Gantt Chart in Excel using Python

Personnaliser le diagramme de Gantt

Vous pouvez personnaliser votre diagramme de Gantt en utilisant les options suivantes :

Couleurs de barre

Définir une couleur solide pour les barres de durée :

chart.n_series[1].area.foreground_color = Color.steel_blue

Transparente Déplacements

Rendez les barres de décalage (invisibles) complètement transparentes.

chart.n_series[0].area.formatting = cells.charts.FormattingType.NONE

Ordre de tâche

Inversez l’axe Y pour afficher les tâches de haut en bas :

chart.category_axis.is_plot_order_reversed = True

Étiquettes de données

Afficher la durée directement sur chaque barre des tâches :

chart.n_series[1].data_labels.show_value = True

Contrôle de la légende

Supprimez ou repositionnez la légende du graphique.

chart.show_legend = False

# Or reposition: 
chart.legend.position = cells.charts.LegendPositionType.BOTTOM

Définir des couleurs de barre personnalisées

chart.n_series[1].points[0].area.foreground_color = Color.green
chart.n_series[1].points[1].area.foreground_color = Color.red

Redimensionner le graphique

chart.chart_object.width = 700
chart.chart_object.height = 400

Exporter en PDF ou en image

workbook.save("gantt_chart.pdf", cells.SaveFormat.PDF)
chart.to_image("chart.png")

Le code Python suivant applique certaines des personnalisations mentionnées ci-dessus :

import aspose.cells as cells
from aspose.pydrawing import Color
import datetime

# Initialiser le classeur et la feuille de calcul
workbook = cells.Workbook()
sheet = workbook.worksheets.get(0)
sheet.name = "Gantt Data"

# Date de début du projet
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")

# Données de la tâche : [Nom de la tâche, Date de début, Durée]
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"]
]

# Remplissez les données dans la feuille
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

    # Formules de date de décalage et de fin
    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

# Ajuster automatiquement les colonnes
sheet.auto_fit_columns()

# Ajouter un diagramme de 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"

# Ajouter des séries de données : Décalage (invisible), Durée (visible)
chart.n_series.add("D2:D6", True)  # Offset
chart.n_series.add("C2:C6", True)  # Duration

# Définir les noms des tâches comme étiquettes de catégorie
chart.n_series.category_data = "A2:A6"

# Rendre les barres de décalage invisibles
chart.n_series[0].area.formatting = cells.charts.FormattingType.NONE

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

# Afficher des étiquettes de données sur les barres de durée
duration_series.data_labels.show_value = True

# Configuration des axes
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

# Cacher la légende
chart.show_legend = False

# Redimensionner le graphique
chart.chart_object.width = 700
chart.chart_object.height = 400

# Save output
workbook.save("CustomizedGanttChart.xlsx", cells.SaveFormat.XLSX)
Personnaliser le diagramme de Gantt dans Excel en utilisant Python

Personnaliser le diagramme de Gantt dans Excel en utilisant Python

Obtenez une licence gratuite

Vous pouvez request a free temporary license pour explorer les pleines capacités d’Aspose.Cells sans aucune limitation ni filigranes.

Ressources supplémentaires

Envie d’explorer davantage ? Les liens ci-dessous vous aideront à plonger plus profondément dans Aspose.Cells for Python via .NET. Que vous recherchiez des guides détaillés, des références API ou des outils gratuits, ces ressources vous couvrent.

Mots de la fin

Créer un diagramme de Gantt dans Excel avec Python est simple et efficace en utilisant Aspose.Cells for Python via .NET. Il vous donne un contrôle total sur la conception du graphique et l’automatisation Excel. Essayez-le avec vos données de projet et constatez la différence.

Si vous avez des questions, n’hésitez pas à nous contacter sur notre forum de support gratuit.

Voir aussi