Visualizzare le tempistiche dei progetti aiuta i team a rimanere allineati e a rispettare le scadenze. Conholdate.Total for Java fornisce un SDK robusto che rende facile creare un diagramma di Gantt in Java con poche righe di codice. In questa guida vedrai come configurare la libreria, popolare i dati delle attività in un foglio di lavoro, trasformare un grafico a barre impilate in una timeline in stile Gantt e esportare il risultato in Excel.
Configurazione di Conholdate.Total per Java
Prima di iniziare a scrivere codice, assicurati di avere Java 17 o versioni successive e un IDE compatibile con Maven. Aggiungi il repository Maven di Conholdate e la dipendenza SDK al tuo 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>
Puoi anche scaricare i JAR più recenti direttamente dalla pagina di download. Una volta che l’SDK è nel tuo classpath, sei pronto per iniziare a creare il grafico.
Costruirlo passo dopo passo: creare un diagramma di Gantt in Java
Passo 1: Crea la cartella di lavoro e popola i dati delle attività
Un diagramma di Gantt costruito in questo modo è in realtà un grafico a barre impilate sovrapposto ai dati del foglio di lavoro, quindi il primo passo è creare il Workbook, prendere il primo Worksheet e inserire i nomi delle attività, gli offset di inizio e le durate da cui il grafico leggerà.
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 colonna A contiene il nome dell’attività, la colonna C contiene il numero di giorni necessari per ciascuna attività e la colonna D contiene il numero di giorni dopo l’inizio del progetto in cui inizia ciascuna attività. Le due serie del grafico (offset di inizio e durata) vengono lette direttamente dalle colonne D e C.
Passo 2: Aggiungi un grafico a barre impilate e configura le serie
Con i dati pronti, aggiungi un grafico BAR_STACKED al foglio di lavoro e collega le sue serie. La serie di offset iniziale spinge ogni barra dell’attività verso destra; la serie di durata disegna la barra dell’attività visibile sopra di essa.
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");
Il grafico è ancorato al foglio di lavoro alla riga 7, colonna 0, e si estende per 30 righe per 10 colonne.
Passo 3: Stilizza il grafico per farlo assomigliare a un diagramma di Gantt
Il trucco per far sì che un grafico a barre impilate venga interpretato come un diagramma di Gantt è rendere invisibile la serie di offset in modo che vengano visualizzate solo le barre di durata, fluttuanti nella posizione di inizio corretta.
// 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);
Passo 4: Configura assi, legenda e dimensione
Inverti l’asse delle categorie in modo che il primo compito appaia in alto, etichetta entrambi gli assi e disattiva la legenda poiché c’è solo una serie significativa da leggere.
// 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);
Passo 5: Salva la cartella di lavoro
Infine, salva la cartella di lavoro. L’SDK supporta XLSX, XLS e altri formati elencati nell’enumerazione SaveFormat.
// Save the result
workbook.save("GanttChartResult.xlsx", com.aspose.cells.SaveFormat.XLSX);
Apri GanttChartResult.xlsx in Excel (o qualsiasi altra app di fogli di calcolo compatibile) per vedere il diagramma di Gantt completato incorporato nel foglio di lavoro.
Esempio di codice completo: Esempio Java di Diagramma di Gantt
Il seguente esempio dimostra come creare un diagramma di Gantt in Java dall’inizio alla fine.
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);
}
}
Nota: Questo esempio di codice dimostra la funzionalità principale. Prima di usarlo nel tuo progetto, assicurati di aggiornare tutti i percorsi dei file e i valori di configurazione per corrispondere al tuo ambiente reale, verifica che tutte le dipendenze richieste siano correttamente installate e testa accuratamente nel tuo ambiente di sviluppo. Se incontri problemi, consulta la documentazione ufficiale o contatta il team di supporto per assistenza.
Conclusione
Creare un diagramma di Gantt in Java diventa semplice con Conholdate.Total for Java. Popolando i dati delle attività in un foglio di lavoro, aggiungendo un grafico a barre impilate e formattando le sue serie e assi, è possibile generare timeline dall’aspetto professionale che vivono direttamente all’interno di un file Excel. Nascondere la serie di offset di inizio mentre si formatta la serie di durata è la tecnica chiave che trasforma un normale grafico a barre impilate in un diagramma di Gantt. Ricorda che è necessaria una licenza commerciale per le distribuzioni in produzione; è possibile ottenere una licenza temporanea dalla pagina della licenza temporanea o esplorare i dettagli dei prezzi nella pagina dei prezzi. Inizia a integrare i diagrammi di Gantt nelle tue applicazioni oggi e tieni informati gli stakeholder con chiari programmi visivi.
FAQs
Come creo un diagramma di Gantt in Java usando Conholdate.Total?
Crea un Workbook, aggiungi un grafico BAR_STACKED a un foglio di lavoro e aggiungi due serie: una serie di offset iniziale nascosta e una serie di durata visibile. Imposta i nomi delle attività come dati di categoria, formatta la serie visibile e salva il workbook. Il frammento di codice completo è fornito in questo articolo.
Posso esportare il diagramma di Gantt in formati diversi da Excel?
Sì. Poiché il diagramma è incorporato in una cartella di lavoro, è possibile salvare il file utilizzando qualsiasi valore dell’enumerazione SaveFormat, come XLSX, XLS o ODS. Consulta la documentazione ufficiale per l’elenco completo.
Quale licenza è necessaria per l’uso in produzione?
È obbligatoria una licenza commerciale. È possibile richiedere una licenza temporanea dalla pagina della licenza temporanea e consultare i prezzi nella pagina dei prezzi.
Come posso migliorare le prestazioni per grandi diagrammi di Gantt?
Mantieni l’intervallo di dati a cui fa riferimento ogni serie il più ristretto possibile, evita ricalcoli inutili della cartella di lavoro e limita le chiamate di formattazione alle serie e agli assi di cui hai realmente bisogno. Mantenere un numero ragionevole di attività per diagramma contribuisce anche a una rapida resa per file di progetto di grandi dimensioni.
