Het visualiseren van projecttijdlijnen helpt teams op één lijn te blijven en deadlines te halen. Conholdate.Total for Java biedt een robuuste SDK die het eenvoudig maakt om een Gantt‑diagram in Java te maken met slechts een paar regels code. In deze gids zie je hoe je de bibliotheek instelt, taakgegevens in een werkblad vult, een gestapelde staafgrafiek omzet in een Gantt‑achtige tijdlijn, en het resultaat exporteert naar Excel.
Instellen van Conholdate.Total voor Java
Voordat u begint met coderen, zorg ervoor dat u Java 17 of hoger en een Maven‑compatibele IDE hebt. Voeg de Conholdate Maven‑repository en de SDK‑afhankelijkheid toe aan uw 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>
U kunt de nieuwste JAR‑bestanden ook rechtstreeks van de downloadpagina downloaden. Zodra de SDK op uw classpath staat, bent u klaar om de grafiek te bouwen.
Stap voor stap bouwen: Gantt-diagram maken in Java
Stap 1: Maak de Werkmap en Vul Taakgegevens in
Een Gantt-diagram dat op deze manier is gebouwd, is eigenlijk een gestapelde staafdiagram die bovenop werkbladgegevens is geplaatst, dus de eerste stap is om de Workbook te maken, het eerste Worksheet te pakken en de taaknamen, startoffsets en duur in te vullen waaruit de grafiek zal lezen.
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);
Kolom A bevat de taaknaam, kolom C bevat hoeveel dagen elke taak duurt, en kolom D bevat hoeveel dagen na de projectstart elke taak begint. De twee reeksen van de grafiek (start offset en duur) worden rechtstreeks uit kolommen D en C gelezen.
Stap 2: Voeg een gestapelde staafgrafiek toe en configureer de series
Met de gegevens op hun plaats, voeg een BAR_STACKED-grafiek toe aan het werkblad en koppel de series. De start‑offsetserie duwt elke taakbalk naar rechts; de duurserie tekent de zichtbare taakbalk erboven.
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");
De grafiek is verankerd in het werkblad op rij 7, kolom 0, en beslaat 30 rijen en 10 kolommen.
Stap 3: Style de grafiek zodat deze eruitziet als een Gantt-diagram
De truc om een gestapelde staafdiagram te laten lezen als een Gantt‑diagram is het onzichtbaar maken van de offsetreeks, zodat alleen de duurstaven zichtbaar zijn, zwevend op de juiste startpositie.
// 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);
Stap 4: Configureer assen, legenda en grootte
Draai de categorische as om zodat de eerste taak bovenaan verschijnt, label beide assen, en schakel de legenda uit aangezien er slechts één betekenisvolle reeks te lezen is.
// 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);
Stap 5: Werkmap opslaan
Sla tenslotte de werkmap op. De SDK ondersteunt XLSX, XLS en andere formaten die worden vermeld in de SaveFormat enum.
// Save the result
workbook.save("GanttChartResult.xlsx", com.aspose.cells.SaveFormat.XLSX);
Open GanttChartResult.xlsx in Excel (of een andere compatibele spreadsheet‑app) om het voltooide Gantt‑diagram te zien dat in het werkblad is ingebed.
Volledig codevoorbeeld: Gantt-diagram Java-voorbeeld
Het onderstaande voorbeeld laat zien hoe je van begin tot eind een Gantt-diagram in Java maakt.
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);
}
}
Opmerking: Dit codevoorbeeld toont de kernfunctionaliteit. Voordat u het in uw project gebruikt, moet u ervoor zorgen dat u alle bestands‑paden en configuratiewaarden bijwerkt zodat ze overeenkomen met uw daadwerkelijke omgeving, verifieer dat alle vereiste afhankelijkheden correct zijn geïnstalleerd, en test grondig in uw ontwikkelomgeving. Als u problemen ondervindt, raadpleeg dan de officiële documentatie of neem contact op met het ondersteuningsteam voor hulp.
Conclusie
Het maken van een Gantt‑diagram in Java wordt eenvoudig met Conholdate.Total for Java. Door taakgegevens in een werkblad te vullen, een gestapelde staafdiagram toe te voegen en de series en assen te stylen, kun je professionele tijdlijnen genereren die direct in een Excel‑bestand staan. Het verbergen van de start‑offsetserie terwijl je de duurserie stylet, is de sleuteltechniek die een gewone gestapelde staafdiagram omtovert tot een Gantt‑diagram. Houd er rekening mee dat een commerciële licentie vereist is voor productie‑implementaties; je kunt een tijdelijke licentie verkrijgen via de tijdelijke licentiepagina of de prijsdetails bekijken op de prijspagina. Begin vandaag nog met het integreren van Gantt‑diagrammen in je applicaties en houd je belanghebbenden geïnformeerd met duidelijke visuele planningen.
FAQs
Hoe maak ik een Gantt-diagram in Java met Conholdate.Total?
Maak een Workbook, voeg een BAR_STACKED-diagram toe aan een werkblad, en voeg twee series toe: een verborgen start‑offset serie en een zichtbare duurserie. Stel de taaknamen in als categorische gegevens, style de zichtbare serie, en sla het werkboek op. Het volledige codefragment wordt in dit artikel geleverd.
Kan ik het Gantt-diagram exporteren naar andere formaten dan Excel?
Ja. Aangezien het diagram is ingebed in een werkmap, kunt u het bestand opslaan met een willekeurige waarde uit de SaveFormat‑enum, zoals XLSX, XLS of ODS. Zie de officiële documentatie voor de volledige lijst.
Welke licentie is vereist voor productiegebruik?
Een commerciële licentie is verplicht. U kunt een tijdelijke licentie aanvragen via de tijdelijke licentiepagina en de prijzen bekijken op de prijspagina.
Hoe kan ik de prestaties voor grote Gantt-diagrammen verbeteren?
Houd het gegevensbereik dat door elke serie wordt gebruikt zo krap mogelijk, vermijd onnodige herberekening van de werkmap en beperk formatteeropdrachten tot de series en assen die je daadwerkelijk nodig hebt. Het redelijk houden van het aantal taken per diagram zorgt er ook voor dat het renderen snel blijft bij grote projectbestanden.
