Visualiser les chronologies de projet aide les équipes à rester alignées et à respecter les délais. Conholdate.Total for Java fournit un SDK robuste qui facilite la création de diagrammes de Gantt en Java avec seulement quelques lignes de code. Dans ce guide, vous verrez comment configurer la bibliothèque, remplir les données des tâches dans une feuille de calcul, transformer un graphique à barres empilées en une chronologie de type Gantt, et exporter le résultat vers Excel.
Configuration de Conholdate.Total for Java
Avant de commencer à coder, assurez‑vous d’avoir Java 17 ou une version ultérieure ainsi qu’un IDE compatible Maven. Ajoutez le référentiel Maven de Conholdate et la dépendance SDK à votre pom.xml :
<repositories>
<repository>
<id>conholdate-repo</id>
<name>Conholdate Maven Repository</name>
<url>https://repository.conholdate.com/repo/</url>
</repository>
</repositories>
<dependency>
<groupId>com.conholdate</groupId>
<artifactId>conholdate-total</artifactId>
<version>24.9</version>
<type>pom</type>
</dependency>
Vous pouvez également télécharger les derniers JAR directement depuis la page de téléchargement. Une fois le SDK ajouté à votre classpath, vous êtes prêt à commencer à créer le graphique.
Construction étape par étape : créer un diagramme Gantt en Java
Étape 1 : Créez le classeur et remplissez les données de tâche
Un diagramme de Gantt construit de cette manière est en réalité un diagramme à barres empilées superposé aux données de la feuille de calcul, donc la première étape consiste à créer le Workbook, récupérer la première Worksheet et remplir les noms des tâches, les décalages de début et les durées que le diagramme lira.
com.aspose.cells.Workbook workbook = new com.aspose.cells.Workbook();
com.aspose.cells.Worksheet sheet = workbook.getWorksheets().get(0);
com.aspose.cells.Cells cells = sheet.getCells();
cells.get("A1").putValue("Task");
cells.get("C1").putValue("Duration (Days)");
cells.get("D1").putValue("Start Offset (Days)");
cells.get("A2").putValue("Requirement Analysis");
cells.get("C2").putValue(5);
cells.get("D2").putValue(0);
cells.get("A3").putValue("Design");
cells.get("C3").putValue(7);
cells.get("D3").putValue(5);
cells.get("A4").putValue("Implementation");
cells.get("C4").putValue(24);
cells.get("D4").putValue(12);
cells.get("A5").putValue("Testing");
cells.get("C5").putValue(15);
cells.get("D5").putValue(36);
cells.get("A6").putValue("Deployment");
cells.get("C6").putValue(2);
cells.get("D6").putValue(51);
La colonne A contient le nom de la tâche, la colonne C indique le nombre de jours nécessaires à chaque tâche, et la colonne D indique le nombre de jours après le début du projet où chaque tâche commence. Les deux séries du graphique (décalage de début et durée) sont lues directement à partir des colonnes D et C.
Étape 2 : Ajouter un graphique à barres empilées et configurer les séries
Avec les données en place, ajoutez un graphique BAR_STACKED à la feuille de calcul et configurez ses séries. La série de décalage de départ pousse chaque barre de tâche vers la droite ; la série de durée dessine la barre de tâche visible au-dessus.
int chartIndex = sheet.getCharts().add(com.aspose.cells.ChartType.BAR_STACKED, 7, 0, 30, 10);
com.aspose.cells.Chart chart = sheet.getCharts().get(chartIndex);
chart.getTitle().setText("Gantt Chart");
// Add offset and duration as series
chart.getNSeries().add("D2:D6", true); // Start Offset
chart.getNSeries().add("C2:C6", true); // Duration
// Set task names as categories
chart.getNSeries().setCategoryData("A2:A6");
Le graphique est ancré à la feuille de calcul à la ligne 7, colonne 0, et s’étend sur 30 lignes sur 10 colonnes.
Étape 3 : Styliser le graphique pour qu’il ressemble à un diagramme de Gantt
L’astuce pour qu’un diagramme à barres empilées ressemble à un diagramme de Gantt consiste à rendre la série de décalage invisible afin que seules les barres de durée s’affichent, flottant à la position de départ correcte.
// Make offset bars invisible
chart.getNSeries().get(0).getArea().setFormatting(com.aspose.cells.FormattingType.NONE);
// Style duration bars
chart.getNSeries().get(1).getArea().setFormatting(com.aspose.cells.FormattingType.CUSTOM);
chart.getNSeries().get(1).getArea().setForegroundColor(com.aspose.cells.Color.getSteelBlue());
chart.getNSeries().get(1).getDataLabels().setShowValue(true);
Étape 4 : Configurer les axes, la légende et la taille
Inversez l’axe des catégories afin que la première tâche apparaisse en haut, étiquetez les deux axes et désactivez la légende puisqu’il n’y a qu’une seule série significative à lire.
// Axis settings
chart.getCategoryAxis().setPlotOrderReversed(true);
chart.getCategoryAxis().getTitle().setText("Tasks");
chart.getValueAxis().getTitle().setText("Days from Start");
chart.getValueAxis().getMajorGridLines().setVisible(true);
// Hide legend
chart.setShowLegend(false);
// Resize chart
chart.getChartObject().setWidth(700);
chart.getChartObject().setHeight(400);
Étape 5 : Enregistrer le classeur
Enfin, enregistrez le classeur. Le SDK prend en charge XLSX, XLS et d’autres formats répertoriés dans l’énumération SaveFormat.
// Save the result
workbook.save("GanttChartResult.xlsx", com.aspose.cells.SaveFormat.XLSX);
Ouvrez GanttChartResult.xlsx dans Excel (ou toute application de feuille de calcul compatible) pour voir le diagramme de Gantt terminé intégré à la feuille de calcul.
Exemple complet de code : Exemple Java du diagramme de Gantt
L’exemple suivant montre comment créer un diagramme de Gantt en Java du début à la fin.
public class GanttChartDemo {
public static void main(String[] args) {
// Create the workbook and get the first worksheet
com.aspose.cells.Workbook workbook = new com.aspose.cells.Workbook();
com.aspose.cells.Worksheet sheet = workbook.getWorksheets().get(0);
// Populate task names, durations, and start offsets
com.aspose.cells.Cells cells = sheet.getCells();
cells.get("A1").putValue("Task");
cells.get("C1").putValue("Duration (Days)");
cells.get("D1").putValue("Start Offset (Days)");
cells.get("A2").putValue("Requirement Analysis");
cells.get("C2").putValue(5);
cells.get("D2").putValue(0);
cells.get("A3").putValue("Design");
cells.get("C3").putValue(7);
cells.get("D3").putValue(5);
cells.get("A4").putValue("Implementation");
cells.get("C4").putValue(24);
cells.get("D4").putValue(12);
cells.get("A5").putValue("Testing");
cells.get("C5").putValue(15);
cells.get("D5").putValue(36);
cells.get("A6").putValue("Deployment");
cells.get("C6").putValue(2);
cells.get("D6").putValue(51);
// Add a stacked bar chart that will act as the Gantt chart
int chartIndex = sheet.getCharts().add(com.aspose.cells.ChartType.BAR_STACKED, 7, 0, 30, 10);
com.aspose.cells.Chart chart = sheet.getCharts().get(chartIndex);
chart.getTitle().setText("Gantt Chart");
// Add offset and duration as series
chart.getNSeries().add("D2:D6", true); // Start Offset
chart.getNSeries().add("C2:C6", true); // Duration
// Set task names as categories
chart.getNSeries().setCategoryData("A2:A6");
// Make offset bars invisible
chart.getNSeries().get(0).getArea().setFormatting(com.aspose.cells.FormattingType.NONE);
// Style duration bars
chart.getNSeries().get(1).getArea().setFormatting(com.aspose.cells.FormattingType.CUSTOM);
chart.getNSeries().get(1).getArea().setForegroundColor(com.aspose.cells.Color.getSteelBlue());
chart.getNSeries().get(1).getDataLabels().setShowValue(true);
// Axis settings
chart.getCategoryAxis().setPlotOrderReversed(true);
chart.getCategoryAxis().getTitle().setText("Tasks");
chart.getValueAxis().getTitle().setText("Days from Start");
chart.getValueAxis().getMajorGridLines().setVisible(true);
// Hide legend
chart.setShowLegend(false);
// Resize chart
chart.getChartObject().setWidth(700);
chart.getChartObject().setHeight(400);
// Save the result
workbook.save("GanttChartResult.xlsx", com.aspose.cells.SaveFormat.XLSX);
}
}
Note : Cet exemple de code démontre la fonctionnalité principale. Avant de l’utiliser dans votre projet, assurez‑vous de mettre à jour tous les chemins de fichiers et les valeurs de configuration pour qu’ils correspondent à votre environnement réel, vérifiez que toutes les dépendances requises sont correctement installées et testez soigneusement dans votre environnement de développement. Si vous rencontrez des problèmes, veuillez consulter la documentation officielle ou contacter l’équipe de support pour obtenir de l’aide.
Conclusion
Créer un diagramme de Gantt en Java devient simple avec Conholdate.Total for Java. En remplissant les données des tâches dans une feuille de calcul, en ajoutant un graphique à barres empilées et en stylisant ses séries et axes, vous pouvez générer des chronologies d’aspect professionnel qui résident directement dans un fichier Excel. Masquer la série de décalage de départ tout en stylisant la série de durée est la technique clé qui transforme un graphique à barres empilées ordinaire en diagramme de Gantt. N’oubliez pas qu’une licence commerciale est requise pour les déploiements en production ; vous pouvez obtenir une licence temporaire depuis la page de licence temporaire ou consulter les détails des tarifs sur la page de tarification. Commencez dès aujourd’hui à intégrer des diagrammes de Gantt dans vos applications et tenez vos parties prenantes informées grâce à des plannings visuels clairs.
FAQ
Comment créer un diagramme de Gantt en Java avec Conholdate.Total ?
Créer un Workbook, ajouter un graphique BAR_STACKED à une feuille de calcul, et ajouter deux séries : une série de décalage de début masquée et une série de durée visible. Définir les noms des tâches comme données de catégorie, styliser la série visible, puis enregistrer le classeur. Le fragment de code complet est fourni dans cet article.
Puis-je exporter le diagramme de Gantt vers des formats autres qu’Excel ?
Oui. Comme le diagramme est intégré dans un classeur, vous pouvez enregistrer le fichier en utilisant n’importe quelle valeur de l’énumération SaveFormat, comme XLSX, XLS ou ODS. Consultez la documentation officielle pour la liste complète.
Quelle licence est requise pour une utilisation en production ?
Une licence commerciale est obligatoire. Vous pouvez demander une licence temporaire depuis la page de licence temporaire et consulter les tarifs sur la page de tarification.
Comment puis‑je améliorer les performances pour les grands diagrammes de Gantt ?
Gardez la plage de données référencée par chaque série aussi restreinte que possible, évitez les recalculs inutiles du classeur et limitez les appels de formatage aux séries et axes dont vous avez réellement besoin. Maintenir un nombre raisonnable de tâches par diagramme contribue également à un rendu rapide pour les gros fichiers de projet.
