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.

Lees meer