Proje zaman çizelgelerini görselleştirmek, ekiplerin uyum içinde kalmasına ve son teslim tarihlerini karşılamasına yardımcı olur. Conholdate.Total for Java sadece birkaç satır kodla Java’da Gantt Şeması oluşturmayı kolaylaştıran sağlam bir SDK sağlar. Bu rehberde kütüphaneyi nasıl kuracağınızı, görev verilerini bir çalışma sayfasına nasıl dolduracağınızı, yığılmış çubuk grafiğini Gantt tarzı bir zaman çizelgesine nasıl dönüştüreceğinizi ve sonucu Excel’e nasıl dışa aktaracağınızı göreceksiniz.
Conholdate.Total for Java Kurulumu
Kodlamaya başlamadan önce, Java 17 veya daha yeni bir sürüm ve Maven‑uyumlu bir IDE’ye sahip olduğunuzdan emin olun. Conholdate Maven deposunu ve SDK bağımlılığını pom.xml dosyanıza ekleyin:
<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>
Ayrıca en son JAR’ları doğrudan indirme sayfasından indirebilirsiniz. SDK sınıf yolunuzda olduğunda, grafiği oluşturmaya hazırsınız.
Adım Adım Oluşturma: Java’da Gantt Şeması Oluşturma
Adım 1: Çalışma Kitabını Oluşturun ve Görev Verilerini Doldurun
Bu şekilde oluşturulan bir Gantt şeması, aslında çalışma sayfası verileri üzerine katmanlanmış bir yığılmış çubuk grafikidir, bu yüzden ilk adım Workbook oluşturmak, ilk Worksheet‘i almak ve şemanın okuyacağı görev adlarını, başlangıç ofsetlerini ve süreleri doldurmaktır.
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);
Sütun A görev adını tutar, sütun C her görevin kaç gün sürdüğünü tutar ve sütun D projenin başlangıcından itibaren her görevin kaç gün sonra başladığını tutar. Grafiğin iki serisi (başlangıç ofseti ve süre) doğrudan sütun D ve C‘den okunur.
Adım 2: Yığılmış Çubuk Grafik Ekle ve Serileri Yapılandır
Veriler yerleştirildiğinde, çalışma sayfasına bir BAR_STACKED grafik ekleyin ve serilerini bağlayın. Başlangıç‑öteleme serisi her görev çubuğunu sağa iter; süre serisi görünür görev çubuğunu onun üzerine çizer.
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");
Grafik, çalışma sayfasına satır 7, sütun 0 konumunda sabitlenmiş ve 30 satır ile 10 sütun boyunca yayılmıştır.
Adım 3: Grafiği Gantt Şeması Gibi Görünecek Şekilde Stilize Edin
Yığılmış çubuk grafiğinin Gantt şeması gibi okunmasını sağlayan hile, ofset serisini görünmez yaparak yalnızca süre çubuklarının doğru başlangıç konumunda yüzen şekilde gösterilmesidir.
// 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);
Adım 4: Eksenleri, Lejantı ve Boyutu Yapılandır
Kategori eksenini tersine çevirerek ilk görevin üstte görünmesini sağlayın, her iki ekseni de etiketleyin ve yalnızca bir anlamlı seri olduğu için göstergeyi kapatın.
// 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);
Adım 5: Çalışma Kitabını Kaydet
Son olarak, çalışma kitabını kaydedin. SDK, XLSX, XLS ve SaveFormat enum’unda listelenen diğer formatları destekler.
// Save the result
workbook.save("GanttChartResult.xlsx", com.aspose.cells.SaveFormat.XLSX);
Excel’de (veya uyumlu bir tablo uygulamasında) GanttChartResult.xlsx dosyasını açın, böylece çalışma sayfasına gömülmüş tamamlanmış Gantt şemasını görebilirsiniz.
Tam Kod Örneği: Gantt Şeması Java Örneği
Aşağıdaki örnek, Java’da baştan sona bir Gantt Şeması oluşturmayı göstermektedir.
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);
}
}
Not: Bu kod örneği temel işlevselliği göstermektedir. Projenizde kullanmadan önce, dosya yollarını ve yapılandırma değerlerini gerçek ortamınıza uygun şekilde güncellediğinizden, tüm gerekli bağımlılıkların doğru şekilde yüklendiğinden emin olun ve geliştirme ortamınızda kapsamlı bir şekilde test edin. Herhangi bir sorunla karşılaşırsanız, lütfen resmi dokümantasyona bakın veya destek ekibi ile iletişime geçin.
Sonuç
Java’da Gantt Şeması oluşturmak, Conholdate.Total for Java ile oldukça basit hale gelir. Bir çalışma sayfasına görev verilerini doldurarak, yığılmış çubuk grafik ekleyerek ve serilerini ve eksenlerini biçimlendirerek, Excel dosyasının içinde yer alan profesyonel görünümlü zaman çizelgeleri oluşturabilirsiniz. Başlangıç gecikmesi serisini gizlerken süre serisini biçimlendirmek, sıradan bir yığılmış çubuk grafiği Gantt şemasına dönüştüren temel tekniktir. Üretim ortamları için ticari bir lisansın gerektiğini unutmayın; geçici bir lisansı geçici lisans sayfası üzerinden alabilir veya fiyatlandırma detaylarını fiyatlandırma sayfası adresinden inceleyebilirsiniz. Gantt şemalarını bugün uygulamalarınıza entegre etmeye başlayın ve paydaşlarınızı net görsel takvimlerle bilgilendirin.
SSS
Java’da Conholdate.Total kullanarak Gantt Şeması nasıl oluşturulur?Workbook oluşturun, bir çalışma sayfasına BAR_STACKED grafik ekleyin ve iki seri ekleyin: gizli bir başlangıç-ofset serisi ve görünür bir süre serisi. Görev adlarını kategori verisi olarak ayarlayın, görünür seriyi biçimlendirin ve çalışma kitabını kaydedin. Tam kod parçacığı bu makalede sağlanmıştır.
Gantt grafiğini Excel dışındaki formatlara dışa aktarabilir miyim?
Evet. Grafik bir çalışma kitabına gömülü olduğundan, SaveFormat enum’undaki herhangi bir değeri, örneğin XLSX, XLS veya ODS kullanarak dosyayı kaydedebilirsiniz. Tam liste için resmi belgeler sayfasına bakın.
Üretim kullanımı için hangi lisans gereklidir?
Ticari bir lisans zorunludur. Geçici bir lisansı geçici lisans sayfası adresinden talep edebilir ve fiyatlandırmayı fiyatlandırma sayfası üzerinden inceleyebilirsiniz.
Büyük Gantt şemalarında performansı nasıl artırabilirim?
Her serinin başvurduğu veri aralığını mümkün olduğunca dar tutun, gereksiz çalışma kitabı yeniden hesaplamasından kaçının ve yalnızca gerçekten ihtiyaç duyduğunuz seriler ve eksenler için biçimlendirme çağrılarını sınırlayın. Grafik başına görev sayısını makul seviyede tutmak, büyük proje dosyalarında render süresinin hızlı kalmasını da sağlar.
