Create Gantt Chart in Excel using Python

Görevlerin bir zaman dilimindeki görselleştirmesi projeleri daha iyi yönetmeye yardımcı olur. Bu makalede, .NET üzerinden Aspose.Cells for Python kullanarak Excel’de bir Gantt grafiği nasıl oluşturulacağını öğreneceksiniz. Sadece birkaç satır kod ile basit görev verilerini dinamik ve temiz bir görsel zaman dilimine dönüştürebilirsiniz; bu, raporlar, panolar ve planlama belgeleri için idealdir. Adım adım ilerleyelim.

Bu makale şu konuları kapsar:

Python Excel Kütüphanesi Gantt Grafikleri için

Aspose.Cells for Python via .NET Python’da Excel dosyalarıyla çalışmak için güçlü bir kütüphanedir. Programlı olarak elektronik tablolar oluşturmanıza, değiştirmenize ve formatlamanıza olanak tanır—Gantt grafikleri gibi grafikler de dahil.

Ana Özellikler:

  • Excel grafikleri ve verileri üzerinde tam kontrol.
  • XLSX, XLS, CSV ve PDF desteği.
  • Büyük dosyalarla yüksek performans.
  • Zengin grafik özelleştirme seçenekleri.

Başlamak için, lütfen kütüphaneyi şu komutla kurun:

pip install aspose-cells

Ayrıca, bunu releases üzerinden de indirebilirsiniz.

Gantt Grafikleri ile Yığılmış Çubuk Grafikler

Excel, yerleşik bir Gantt grafiği türü sunmaz ve Aspose.Cells de öyle. Ancak, biraz biçimlendirme ile bir yığılmış çubuk grafiği kullanarak hâlâ bir tane oluşturabilirsiniz. Bu yaygın bir tekniktir ve Aspose.Cells bunu tam olarak kod aracılığıyla destekler.

Aspose.Cells ile Neler Yapabilirsiniz

Bir Gantt şemasını Excel’de kolayca otomatikleştirebilirsiniz. Bunun için aşağıdakileri yapın:

  • Görev verilerini girin (görev adı, başlangıç tarihi ve süre).
  • Bir yığılmış çubuk grafik ekleyin.
  • Bir seri "başlangıç kaydırması" (görünmez) ve diğerini "süre" (görünür) için kullanın.
  • Grafiği bir Gantt grafiği gibi görünmesi için biçimlendirin.

Bu, dinamik olarak oluşturabileceğiniz profesyonel görünümlü bir zaman çizelgesi sağlar.

Örnek Görev Verisi

İşte kullanacağımız bir örnek tablo:

GörevBaşlangıç TarihiSüreBaşlangıç Ofseti
Task 12025-04-0130
Task 22025-04-0362
Task 32025-04-08107
Task 42025-04-18317
Task 52025-04-21520

Create a Gantt Chart in Excel using Python

Bu adımları izleyerek .NET üzerinden Python ile Aspose.Cells kullanarak Excel’de bir Gantt grafiği oluşturun:

  • Mevcut bir Excel veri dosyasını Workbook sınıfını kullanarak yükleyin.
  • İlk çalışma sayfasını workbook.worksheets[0] ile alın.
  • Bir yığılmış çubuk grafik ekleyerek bir Gantt grafik düzeni ekleyin.
  • İki veri serisi ekleyin: biri ofset için diğeri süre için.
  • Görev adlarını kategori etiketleri olarak ayarlayın.
  • Stil ve eksen ayarlarını ayarlayın, grafiği biçimlendirin.
  • Dosyayı workbook.save() yöntemi ile kaydedin.

İşte bu adımları gerçekleştiren bir Python kodu:

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

# Excel dosyasını yükleyin
workbook = cells.Workbook("sample-data.xlsx")
sheet = workbook.worksheets.get(0)

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

# Sıra olarak ofset ve süre ekle
chart.n_series.add("D2:D6", True)  # Start Offset
chart.n_series.add("C2:C6", True)  # Duration

# Görev adlarını kategoriler olarak ayarla
chart.n_series.category_data = "A2:A6"

# Offset çubukları görünmez yapın
chart.n_series[0].area.formatting = cells.charts.FormattingType.NONE

# Tarz süre çubukları
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

# Eksen ayarları
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

# Efsaneyi gizle
chart.show_legend = False

# Grafiği yeniden boyutlandır (isteğe bağlı)
chart.chart_object.width = 700
chart.chart_object.height = 400

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

Bu, görev verilerinizle temiz bir Gantt tarzı grafik oluşturacaktır.

Create a Gantt Chart in Excel using Python

Excel’de Python kullanarak Gantt Çizelgesi oluşturun

Gantt Şemasını Özelleştir

Gantt şemanızı aşağıdaki mevcut seçenekleri kullanarak özelleştirebilirsiniz:

Bar Colors

Süre çubukları için tek bir renk ayarlayın:

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

Şeffaf Ofsetler

Kaydırma (görünmez) çubukları tamamen saydam hale getirin.

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

Görev Sırası

Y-eksenini ters çevirin ve görevleri yukarıdan aşağıya gösterin:

chart.category_axis.is_plot_order_reversed = True

Veri Etiketleri

Görev çubuğundaki her görevde süreyi doğrudan göster:

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

Efsane Kontrol

Grafik efsanesini kaldırın veya yeniden yerleştirin.

chart.show_legend = False

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

Özel Çubuk Renklerini Ayarla

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

Grafiği Yeniden Boyutlandırın

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

PDF veya Resim Olarak Dışa Aktar

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

Aşağıdaki Python kodu, yukarıda belirtilen bazı özelleştirmeleri uygular:

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

# Çalışma kitabını ve çalışma sayfasını başlatın
workbook = cells.Workbook()
sheet = workbook.worksheets.get(0)
sheet.name = "Gantt Data"

# Proje başlangıç tarihi
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")

# Görev verileri: [Görev Adı, Başlangıç Tarihi, Süre]
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"]
]

# Verileri şifreye doldur.
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

    # Offset ve Bitiş Tarihi formülleri
    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

# Sütunları otomatik boyutlandır
sheet.auto_fit_columns()

# Gantt şeması ekle
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"

# Veri serileri ekle: Ofset (görünmez), Süre (görünür)
chart.n_series.add("D2:D6", True)  # Offset
chart.n_series.add("C2:C6", True)  # Duration

# Görev adlarını kategori etiketleri olarak ayarlayın
chart.n_series.category_data = "A2:A6"

# Offset çubuklarını görünmez yapın
chart.n_series[0].area.formatting = cells.charts.FormattingType.NONE

# Her görev çubuğunu farklı renklere boyayın.
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)

# Süre çubuklarında veri etiketlerini göster
duration_series.data_labels.show_value = True

# Eksen yapılandırması
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

# Efsaneyi gizle
chart.show_legend = False

# Grafiği yeniden boyutlandırın
chart.chart_object.width = 700
chart.chart_object.height = 400

# Save output
workbook.save("CustomizedGanttChart.xlsx", cells.SaveFormat.XLSX)
Excel'de Python kullanarak Gantt Şeması Özelleştirme

Excel’de Gantt Şeması Oluşturmak için Python’u Özelleştirin

Ücretsiz Lisans Alın

Ücretsiz geçici bir lisans request a free temporary license talep edebilirsiniz, böylece Aspose.Cells’in tüm yeteneklerini herhangi bir kısıtlama veya filigran olmadan keşfedebilirsiniz.

Ek Kaynaklar

Daha fazla keşfetmek ister misiniz? Aşağıdaki bağlantılar, .NET aracılığıyla Aspose.Cells for Python hakkında daha derinlemesine bilgi edinmenize yardımcı olacaktır. İster detaylı kılavuzlar, ister API referansları, ister ücretsiz araçlar arıyor olun, bu kaynaklar size yardımcı olacaktır.

Final Words

Excel’de Python ile Gantt grafiği oluşturmak, .NET aracılığıyla Aspose.Cells kullanarak basit ve etkili bir yöntemdir. Grafik tasarımı ve Excel otomasyonu üzerinde tam kontrol sağlar. Bunu proje verilerinizle deneyin ve farkı görün.

Herhangi bir sorunuz olursa, lütfen free support forum adresinden bizimle iletişime geçmekte özgür olun.

Ayrıca Bakınız