Memvisualisasikan garis waktu proyek membantu tim tetap selaras dan memenuhi tenggat waktu. Conholdate.Total for Java menyediakan SDK yang kuat yang memudahkan pembuatan Gantt Chart di Java dengan hanya beberapa baris kode. Dalam panduan ini Anda akan melihat cara menyiapkan pustaka, mengisi data tugas dalam lembar kerja, mengubah diagram batang bertumpuk menjadi garis waktu bergaya Gantt, dan mengekspor hasilnya ke Excel.

Menyiapkan Conholdate.Total for Java

Sebelum Anda mulai menulis kode, pastikan Anda memiliki Java 17 atau yang lebih baru serta IDE yang kompatibel dengan Maven. Tambahkan repositori Maven Conholdate dan dependensi SDK ke pom.xml Anda:

<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>

Anda juga dapat mengunduh JAR terbaru secara langsung dari halaman unduhan. Setelah SDK berada di classpath Anda, Anda siap mulai membangun diagram.

Membangunnya Langkah demi Langkah: Membuat Diagram Gantt di Java

Langkah 1: Buat Workbook dan Isi Data Tugas

Diagram Gantt yang dibangun dengan cara ini sebenarnya adalah diagram batang bertumpuk yang ditempatkan di atas data lembar kerja, jadi langkah pertama adalah membuat Workbook, mengambil Worksheet pertama, dan mengisi nama tugas, offset mulai, serta durasi yang akan dibaca oleh diagram.

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 berisi nama tugas, kolom C berisi berapa hari yang dibutuhkan setiap tugas, dan kolom D berisi berapa hari setelah mulai proyek setiap tugas dimulai. Dua seri pada diagram (offset mulai dan durasi) dibaca langsung dari kolom D dan C.

Langkah 2: Tambahkan Diagram Batang Bertumpuk dan Konfigurasikan Seri

Dengan data yang sudah ada, tambahkan diagram BAR_STACKED ke lembar kerja dan hubungkan seri‑serinya. Seri offset‑mulai memindahkan setiap batang tugas ke kanan; seri durasi menggambar batang tugas yang terlihat di atasnya.

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");

Diagram diikat ke lembar kerja pada baris 7, kolom 0, dan mencakup 30 baris serta 10 kolom.

Langkah 3: Gaya Grafik agar Tampak Seperti Diagram Gantt

Trik agar diagram batang bertumpuk terbaca seperti diagram Gantt adalah dengan membuat seri offset tidak terlihat sehingga hanya batang durasi yang ditampilkan, mengambang pada posisi awal yang tepat.

// 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);

Langkah 4: Konfigurasikan Sumbu, Legenda, dan Ukuran

Balikkan sumbu kategori sehingga tugas pertama muncul di bagian atas, beri label pada kedua sumbu, dan matikan legenda karena hanya ada satu seri yang bermakna untuk dibaca.

// 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);

Langkah 5: Simpan Workbook

Terakhir, simpan workbook. SDK mendukung XLSX, XLS, dan format lain yang tercantum dalam enum SaveFormat.

// Save the result
workbook.save("GanttChartResult.xlsx", com.aspose.cells.SaveFormat.XLSX);

Buka GanttChartResult.xlsx di Excel (atau aplikasi spreadsheet kompatibel lainnya) untuk melihat diagram Gantt selesai yang disematkan pada lembar kerja.

Contoh Kode Lengkap: Contoh Gantt Chart Java

Contoh berikut menunjukkan cara membuat Gantt Chart di Java dari awal hingga akhir.

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);
    }
}

Catatan: Contoh kode ini menunjukkan fungsi inti. Sebelum menggunakannya dalam proyek Anda, pastikan untuk memperbarui semua jalur file dan nilai konfigurasi agar sesuai dengan lingkungan Anda yang sebenarnya, verifikasi bahwa semua dependensi yang diperlukan telah terpasang dengan benar, dan uji secara menyeluruh di lingkungan pengembangan Anda. Jika Anda menemukan masalah, silakan merujuk ke dokumentasi resmi atau hubungi tim dukungan untuk bantuan.

Kesimpulan

Membuat Gantt Chart di Java menjadi mudah dengan Conholdate.Total for Java. Dengan mengisi data tugas dalam lembar kerja, menambahkan diagram batang bertumpuk, dan menata seri serta sumbu, Anda dapat menghasilkan timeline yang tampak profesional yang berada langsung di dalam file Excel. Menyembunyikan seri offset‑mulai sambil menata seri durasi adalah teknik kunci yang mengubah diagram batang bertumpuk biasa menjadi Gantt chart. Ingat bahwa lisensi komersial diperlukan untuk penerapan produksi; Anda dapat memperoleh lisensi sementara dari halaman lisensi sementara atau menjelajahi detail harga pada halaman harga. Mulailah mengintegrasikan Gantt chart ke dalam aplikasi Anda hari ini dan beri tahu pemangku kepentingan Anda dengan jadwal visual yang jelas.

FAQs

Bagaimana cara membuat Gantt Chart di Java menggunakan Conholdate.Total?
Buat sebuah Workbook, tambahkan diagram BAR_STACKED ke lembar kerja, dan tambahkan dua seri: seri offset‑mulai tersembunyi dan seri durasi yang terlihat. Atur nama tugas sebagai data kategori, beri gaya pada seri yang terlihat, dan simpan workbook. Potongan kode lengkap disediakan dalam artikel ini.

Bisakah saya mengekspor diagram Gantt ke format selain Excel?
Ya. Karena diagram tersebut tertanam dalam buku kerja, Anda dapat menyimpan file menggunakan nilai apa pun dari enum SaveFormat, seperti XLSX, XLS, atau ODS. Lihat dokumentasi resmi untuk daftar lengkap.

Lisensi apa yang diperlukan untuk penggunaan produksi?
Lisensi komersial wajib. Anda dapat meminta lisensi sementara dari halaman lisensi sementara dan meninjau harga pada halaman harga.

Bagaimana saya dapat meningkatkan kinerja untuk diagram Gantt besar?
Jaga rentang data yang dirujuk oleh setiap seri tetap sempit, hindari perhitungan ulang workbook yang tidak perlu, dan batasi pemanggilan format pada seri dan sumbu yang memang Anda butuhkan. Menjaga jumlah tugas per diagram tetap wajar juga membuat proses rendering cepat untuk file proyek yang besar.

Baca Selengkapnya