Buat Gantt Chart di Excel menggunakan Python

Visualisasi tugas pada garis waktu membantu mengelola proyek dengan lebih baik. Dalam artikel ini, Anda akan belajar cara membuat diagram Gantt di Excel menggunakan Python dengan Aspose.Cells for Python melalui .NET. Dengan hanya beberapa baris kode, Anda dapat mengubah data tugas yang sederhana menjadi garis waktu visual yang dinamis dan bersih, ideal untuk laporan, dasbor, dan dokumen perencanaan. Mari kita jalani langkah demi langkah.

Artikel ini membahas topik-topik berikut:

Python Excel Library untuk Grafik Gantt

Aspose.Cells for Python via .NET adalah pustaka yang kuat untuk bekerja dengan file Excel di Python. Ini memungkinkan Anda untuk membuat, mengubah, dan memformat spreadsheet secara programatis—termasuk grafik seperti grafik Gantt.

Fitur Utama:

  • Kontrol penuh atas grafik dan data Excel.
  • Dukungan untuk XLSX, XLS, CSV, dan PDF.
  • Kinerja tinggi dengan file besar.
  • Opsi kustomisasi grafik yang kaya.

Untuk memulai, silakan instal perpustakaan dengan:

pip install aspose-cells

Anda juga dapat mengunduhnya dari releases.

Gantt Charts dengan Diagram Batang Bertumpuk

Excel tidak menyediakan tipe diagram Gantt bawaan, dan begitu juga Aspose.Cells. Namun, Anda masih bisa membuatnya dengan menggunakan diagram batang tumpuk dengan sedikit pemformatan. Ini adalah teknik yang umum, dan Aspose.Cells sepenuhnya mendukungnya melalui kode.

Apa yang Bisa Anda Lakukan dengan Aspose.Cells

Anda dapat dengan mudah mengotomatiskan diagram Gantt di Excel dengan melakukan hal berikut:

  • Masukkan data tugas (nama tugas, tanggal mulai, dan durasi).
  • Sisipkan diagram batang bertumpuk.
  • Gunakan satu seri untuk "start offset" (tidak terlihat) dan satu lagi untuk "duration" (terlihat).
  • Format grafiknya agar terlihat seperti grafik Gantt.

Ini memberi Anda garis waktu yang terlihat profesional yang dapat Anda hasilkan secara dinamis.

Sample Task Data

Berikut adalah tabel contoh yang akan kami gunakan:

TugasTanggal MulaiDurasiOffset Mulai
Task 12025-04-0130
Task 22025-04-0362
Task 32025-04-08107
Task 42025-04-18317
Task 52025-04-21520

Buat Gantt Chart di Excel menggunakan Python

Ikuti langkah-langkah ini untuk membuat diagram Gantt di Excel menggunakan Python dengan Aspose.Cells for Python melalui .NET:

  • Muatan file data Excel yang ada menggunakan kelas Workbook.
  • Dapatkan lembar kerja pertama dengan workbook.worksheets[0].
  • Tambahkan grafik batang bertumpuk untuk menambahkan tata letak grafik Gantt.
  • Tambahkan dua seri data: satu untuk offset dan satu untuk durasi.
  • Set task names as category labels.
  • Sesuaikan gaya dan pengaturan sumbu untuk memformat grafik.
  • Simpan file menggunakan metode workbook.save().

Berikut adalah cuplikan kode Python yang melakukan semua langkah ini:

import aspose.cells as cells
from aspose.pydrawing import Color

# Load the Excel file
workbook = cells.Workbook("sample-data.xlsx")
sheet = workbook.worksheets.get(0)

# Tambahkan Diagram Gantt
chart_index = sheet.charts.add(cells.charts.ChartType.BAR_STACKED, 7, 0, 30, 10)
chart = sheet.charts[chart_index]
chart.title.text = "Gantt Chart"

# Tambahkan offset dan durasi sebagai seri
chart.n_series.add("D2:D6", True)  # Start Offset
chart.n_series.add("C2:C6", True)  # Duration

# Tetapkan nama tugas sebagai kategori
chart.n_series.category_data = "A2:A6"

# Buat offset bars tidak terlihat
chart.n_series[0].area.formatting = cells.charts.FormattingType.NONE

# Gaya durasi bilah
chart.n_series[1].area.formatting = cells.charts.FormattingType.CUSTOM
chart.n_series[1].area.foreground_color = Color.steel_blue
chart.n_series[1].data_labels.show_value = True

# Pengaturan sumbu
chart.category_axis.is_plot_order_reversed = True
chart.category_axis.title.text = "Tasks"
chart.value_axis.title.text = "Days from Start"
chart.value_axis.major_grid_lines.is_visible = True

# Sembunyikan legenda
chart.show_legend = False

# Ubah ukuran grafik (opsional)
chart.chart_object.width = 700
chart.chart_object.height = 400

# Save the result
workbook.save("GanttChartResult.xlsx", cells.SaveFormat.XLSX)

Ini akan menghasilkan grafik gaya Gantt yang bersih dengan data tugas Anda.

Buat Gantt Chart di Excel menggunakan Python

Buat Grafik Gantt di Excel menggunakan Python

Sesuaikan Chart Gantt

Anda dapat menyesuaikan grafik Gantt Anda menggunakan opsi yang tersedia berikut:

Warna Bar

Atur warna solid untuk bilah durasi:

chart.n_series[1].area.foreground_color = Color.steel_blue

Transparent Offsets

Buat batang offset (tidak terlihat) sepenuhnya transparan.

chart.n_series[0].area.formatting = cells.charts.FormattingType.NONE

Task Order

Balik sumbu Y untuk menampilkan tugas dari atas ke bawah:

chart.category_axis.is_plot_order_reversed = True

Label Data

Tampilkan durasi langsung di setiap bilah tugas:

chart.n_series[1].data_labels.show_value = True

Kontrol Legenda

Hapus atau pindahkan legenda grafik.

chart.show_legend = False

# Or reposition: 
chart.legend.position = cells.charts.LegendPositionType.BOTTOM

Atur Warna Bar Kustom

chart.n_series[1].points[0].area.foreground_color = Color.green
chart.n_series[1].points[1].area.foreground_color = Color.red

Ubah Ukuran Grafik

chart.chart_object.width = 700
chart.chart_object.height = 400

Ekspor ke PDF atau Gambar

workbook.save("gantt_chart.pdf", cells.SaveFormat.PDF)
chart.to_image("chart.png")

Potongan kode Python berikut menerapkan beberapa penyesuaian yang disebutkan di atas:

import aspose.cells as cells
from aspose.pydrawing import Color
import datetime

# Inisialisasi workbook dan worksheet
workbook = cells.Workbook()
sheet = workbook.worksheets.get(0)
sheet.name = "Gantt Data"

# Tanggal mulai proyek
project_start = datetime.date(2025, 4, 1)

# Headers
sheet.cells.get("A1").put_value("Task")
sheet.cells.get("B1").put_value("Start Date")
sheet.cells.get("C1").put_value("Duration (Days)")
sheet.cells.get("D1").put_value("Start Offset")
sheet.cells.get("E1").put_value("End Date")

# Data tugas: [Nama Tugas, Tanggal Mulai, Durasi]
tasks = [
    ["Task 1", "2025-04-01", "3"],
    ["Task 2", "2025-04-03", "6"],
    ["Task 3", "2025-04-08", "10"],
    ["Task 4", "2025-04-18", "3"],
    ["Task 5", "2025-04-21", "5"]
]

# Isi data ke dalam lembar kerja
for i, task in enumerate(tasks):
    row = i + 2  # Start from row 2
    sheet.cells.get(row, 0).put_value(task[0])  # Task Name
    sheet.cells.get(row, 1).put_value(datetime.datetime.strptime(task[1], "%Y-%m-%d").date())  # Start Date
    sheet.cells.get(row, 2).put_value(int(task[2]))  # Duration

    # Rumus Offset dan Tanggal Akhir
    sheet.cells.get(row, 3).formula = f"=B{row + 1} - DATE(2025,4,1)"  # Offset
    sheet.cells.get(row, 4).formula = f"=B{row + 1} + C{row + 1}"  # End Date

# Sesuaikan lebar kolom otomatis
sheet.auto_fit_columns()

# Tambahkan grafik Gantt
chart_index = sheet.charts.add(cells.charts.ChartType.BAR_STACKED, 10, 0, 30, 10)
chart = sheet.charts[chart_index]
chart.title.text = "Project Gantt Chart"

# Tambahkan seri data: Offset (tidak terlihat), Durasi (terlihat)
chart.n_series.add("D2:D6", True)  # Offset
chart.n_series.add("C2:C6", True)  # Duration

# Atur nama tugas sebagai label kategori
chart.n_series.category_data = "A2:A6"

# Buat batang offset tidak terlihat
chart.n_series[0].area.formatting = cells.charts.FormattingType.NONE

# Warnai setiap bilah tugas dengan warna yang berbeda
duration_series = chart.n_series[1]
for i in range(duration_series.points.count):
    red = 100 + i * 30
    duration_series.points[i].area.foreground_color = Color.from_argb(255, red, 150)

# Tampilkan label data pada batang durasi
duration_series.data_labels.show_value = True

# Konfigurasi sumbu
chart.category_axis.title.text = "Tasks"
chart.category_axis.is_plot_order_reversed = True
chart.value_axis.title.text = "Days from Project Start"
chart.value_axis.major_grid_lines.is_visible = True
chart.value_axis.min_value = 0
chart.value_axis.major_unit = 5.0

# Sembunyikan legenda
chart.show_legend = False

# Ubah ukuran grafik
chart.chart_object.width = 700
chart.chart_object.height = 400

# Save output
workbook.save("CustomizedGanttChart.xlsx", cells.SaveFormat.XLSX)
Sesuaikan Grafik Gantt di Excel menggunakan Python

Sesuaikan Grafik Gantt di Excel menggunakan Python

Dapatkan Lisensi Gratis

Anda dapat request a free temporary license untuk menjelajahi sepenuhnya kemampuan Aspose.Cells tanpa batasan atau watermark.

Sumber Tambahan

Ingin menjelajahi lebih banyak? Tautan di bawah ini akan membantu Anda menyelami lebih dalam ke dalam Aspose.Cells for Python melalui .NET. Apakah Anda mencari panduan mendetail, referensi API, atau alat gratis, sumber daya ini telah mencakup kebutuhan Anda.

Kata-kata Terakhir

Membuat diagram Gantt di Excel dengan Python adalah sederhana dan efektif menggunakan Aspose.Cells for Python melalui .NET. Ini memberi Anda kontrol penuh atas desain diagram dan otomatisasi Excel. Cobalah dengan data proyek Anda dan lihat perbedaannya.

Jika Anda memiliki pertanyaan, silakan merasa bebas untuk menghubungi kami di forum dukungan gratis kami.

Lihat Juga