Excel'de C# kullanarak Gantt Chart oluşturun.

Proje zaman çizelgelerini görselleştirmek, etkili planlama ve izleme için önemlidir. Bu blog yazısında, C# kullanarak Excel’de bir Gantt grafiği nasıl oluşturulacağını öğreneceksiniz. Sadece birkaç satır kod ile dinamik, görsel olarak çekici Gantt grafikleri oluşturmayı otomatikleştirebilirsiniz. İster bir proje yönetim aracı inşa ediyor olun, ister dahili raporlama üzerinde çalışıyor olun, bu rehber görev verilerini net ve profesyonel bir zaman çizelgesine nasıl dönüştüreceğinizi gösterecek - tamamen özelleştirilebilir ve Excel, PDF veya görsel formatlara ihracat için hazır. Haydi başlayalım!

Bu makale aşağıdaki konuları kapsamaktadır:

C# Excel Kütüphanesi ile Gantt Grafiklerini Oluşturma

Aspose.Cells for .NET , Excel’de Gantt grafikleri oluşturma sürecini basitleştiren güçlü bir Excel kütüphanesidir. Excel dosyalarını programlı olarak manipüle etmek için sağlam özellikler sunar. Aspose.Cells ile geliştiriciler kolayca grafikler ve tablolar oluşturabilir, değiştirebilir ve özelleştirebilir. Bu kütüphane, çeşitli Excel formatlarını destekler ve ileri düzey işlevler sunar, bu da onu hem proje yöneticileri hem de geliştiriciler için ideal bir seçim haline getirir.

Aspose.Cells for .NET, entegrasyonu ve esnekliği sayesinde öne çıkmaktadır. İşte bazı temel özellikler:

  • Kapsamlı API: Geniş bir Excel işlevselliğine erişim.
  • Gelişmiş Özelleştirme: Grafik ve tabloları belirli ihtiyaçlara göre uyarlayın.
  • Yüksek Performans: Hızdan ödün vermeden büyük veri setlerini etkin bir şekilde yönetin.
  • Birden Fazla Format Desteği: XLSX, XLS ve CSV dahil olmak üzere çeşitli Excel formatları ile çalışın.

Aspose.Cells for .NET ile başlamak için bu basit adımları izleyin:

  1. Kütüphaneyi releases adresinden indirin.
  2. Bunu aşağıdaki komutla NuGet Paket Yöneticisi aracılığıyla yükleyin:
    PM> Install-Package Aspose.Cells
    

Gantt Şeması Nasıl Oluşturulur: Yığılmış Çubuk Grafiklerini Kullanma

Aspose.Cells yerleşik bir Gantt grafiği türüne sahip değildir çünkü Excel kendisi de yerel bir Gantt grafiği türü sunmamaktadır. Ancak, Excel’deki Gantt grafikleri genellikle yığılmış çubuk grafikleri ile özel formatlama kombinasyonu kullanılarak oluşturulur — ve Aspose.Cells bu yaklaşımı programlı olarak desteklemektedir.

Aspose.Cells ile Neler Yapabilirsiniz:

Excel’de bir Gantt grafiği oluşturma işlemini otomatikleştirebilirsiniz.

  • Görev verilerini ayarlama (görev adı, başlangıç tarihi, süre).
  • Yığınlanmış çubuk grafik ekleme.
  • “start offset” (gizli) için bir dizi ve “duration” (görülebilir) için başka bir dizi kullanarak.
  • Grafiği bir Gantt grafiğine benzetmek.

Örnek Gantt Şeması Verileri


| Task   | Start Date  | Duration | Start Offset |
|--------|-------------|----------|--------------|
| Task 1 | 2025-04-01  | 3        | 0            |
| Task 2 | 2025-04-03  | 6        | 2            |
| Task 3 | 2025-04-08  | 10       | 7            |
| Task 4 | 2025-04-18  | 3        | 17           |
| Task 5 | 2025-04-21  | 5        | 20           |

Create a Gantt Chart in Excel using C#

Bu adımları izleyerek Aspose.Cells for .NET kullanarak Excel’de bir Gantt tablosu oluşturun:

  1. Mevcut bir Excel dosyasını Workbook sınıfını kullanarak yükleyin.
  2. İlk çalışma sayfasına workbook.Worksheets[0] kullanarak erişin.
  3. ChartType.BarStacked kullanarak bir Gantt grafiği düzenini simüle eden bir grafik ekleyin.
  4. Seri olarak ofset ve süre ekleyin.
  5. Kategorileri etiketlerini CategoryData özelliğini kullanarak ayarlayın.
  6. Stil ve Eksen ayarlarını ayarlayın.
  7. Çalışma kitabını workbook.Save() kullanarak kaydedin.

İşte yukarıdaki adımları uygulayan bir C# kod parçacığı:

using Aspose.Cells;
using Aspose.Cells.Charts;

// Excel dosyasını yükleyin
Workbook workbook = new Workbook("sample-data.xlsx");
Worksheet sheet = workbook.Worksheets[0];

// Gantt Chart ekleyin
int chartIndex = sheet.Charts.Add(ChartType.BarStacked, 7, 0, 30, 10);
Chart chart = sheet.Charts[chartIndex];
chart.Title.Text = "Gantt Chart";

// Offset ve süreyi seri olarak ekle
chart.NSeries.Add("D2:D6", true); // Start Offset
chart.NSeries.Add("C2:C6", true); // Duration

// Görev adlarını kategoriler olarak ayarlayın.
chart.NSeries.CategoryData = "A2:A6";

// Offset çubukları görünmez yapın
chart.NSeries[0].Area.Formatting = FormattingType.None;

// Stil süre çubukları
chart.NSeries[1].Area.Formatting = FormattingType.Custom;
chart.NSeries[1].Area.ForegroundColor = Color.SteelBlue;
chart.NSeries[1].DataLabels.ShowValue = true;

// Eksen ayarları
chart.CategoryAxis.IsPlotOrderReversed = true;
chart.CategoryAxis.Title.Text = "Tasks";
chart.ValueAxis.Title.Text = "Days from Start";
chart.ValueAxis.MajorGridLines.IsVisible = true;

// Efsaneyi gizle
chart.ShowLegend = false;

// Grafiği yeniden boyutlandır (isteğe bağlı)
chart.ChartObject.Width = 700;
chart.ChartObject.Height = 400;

// Save the result
workbook.Save("GanttChartResult.xlsx", SaveFormat.Xlsx);
Create a Gantt Chart in Excel using C#

Create a Gantt Chart in Excel using C#

Excel’de C# kullanarak Gantt Şeması Özelleştirme

Aspose.Cells for .NET’te Gantt grafiğinizi aşağıdaki özelleştirme özelliklerini kullanarak geliştirebilirsiniz:

  • Bar Colors Süre çubukları için tek renk ayarla:

    chart.NSeries[1].Area.ForegroundColor = Color.SteelBlue;
    
  • Şeffaf Ayarlamalar Ofset (görünmez) çubukları tamamen saydam yapın.

    chart.NSeries[0].Area.Formatting = FormattingType.None;
    
  • Görev Sırası Y eksenini tersine çevirerek görevleri üstten alta göster:

    chart.CategoryAxis.IsPlotOrderReversed = true;
    
  • Veri Etiketleri Görev çubuğundaki her görev için süreyi doğrudan göster:

    chart.NSeries[1].DataLabels.ShowValue = true;
    
  • Legend Control Grafik legendasını kaldırın veya konumunu değiştirin.

    chart.ShowLegend = false;
    // Or reposition: chart.Legend.Position = LegendPositionType.Bottom;
    
  • Bireysel Bar Stilize Etme Her görev için özel renkler ayarlayın.

    var series = chart.NSeries[1];
    series.Points[0].Area.ForegroundColor = Color.Green;
    series.Points[1].Area.ForegroundColor = Color.Red;
    
  • Grafik Boyutları Grafiği yeniden boyutlandır ve yeniden konumlandır:

    chart.ChartObject.Width = 700;
    chart.ChartObject.Height = 400;
    
  • Dışa Aktarma Seçenekleri Grafiği Excel, PDF veya görüntü olarak kaydedin.

    workbook.Save("GanttChart.xlsx");
    workbook.Save("GanttChart.pdf", SaveFormat.Pdf);
    chart.ToImage("chart.png", ImageFormat.Png);
    

İşte yukarıda verilen birkaç özel ayarı uygulayan bir C# kod parçası:

using Aspose.Cells;
using Aspose.Cells.Charts;

// Çalışma kitabını ve çalışma sayfasını başlatın
Workbook workbook = new Workbook();
Worksheet sheet = workbook.Worksheets[0];
sheet.Name = "Gantt Data";

// Örnek Görev Verisi ile Tarihler
DateTime projectStart = new DateTime(2025, 4, 1);

// Headers
sheet.Cells["A1"].PutValue("Task");
sheet.Cells["B1"].PutValue("Start Date");
sheet.Cells["C1"].PutValue("Duration (Days)");
sheet.Cells["D1"].PutValue("Start Offset");
sheet.Cells["E1"].PutValue("End Date");

// Data
string[,] 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" }
    };

for (int i = 0; i < tasks.GetLength(0); i++)
{
    int row = i + 1 + 1; // Start from row 2

    sheet.Cells[row, 0].PutValue(tasks[i, 0]); // Task Name
    sheet.Cells[row, 1].PutValue(DateTime.Parse(tasks[i, 1])); // Start Date
    sheet.Cells[row, 2].PutValue(int.Parse(tasks[i, 2])); // Duration

    // Offset: = StartDate - ProjectStartDate
    sheet.Cells[row, 3].Formula = $"=B{row + 1} - DATE(2025,4,1)";
    sheet.Cells[row, 4].Formula = $"=B{row + 1} + C{row + 1}";
}

// Autofit
sheet.AutoFitColumns();

// Bir grafik ekle
int chartIndex = sheet.Charts.Add(ChartType.BarStacked, 10, 0, 30, 10);
Chart chart = sheet.Charts[chartIndex];
chart.Title.Text = "Project Gantt Chart";

// Add Series: Offset (görünmez), Duration (görünür)
chart.NSeries.Add("D2:D6", true); // Offset
chart.NSeries.Add("C2:C6", true); // Duration

// Kategori etiketlerini ayarla
chart.NSeries.CategoryData = "A2:A6";

// Offset serisini şeffaf yapın
chart.NSeries[0].Area.Formatting = FormattingType.None;

// Her görev çubuğunu farklı renkte renklendir.
Series durationSeries = chart.NSeries[1];
for (int i = 0; i < durationSeries.Points.Count; i++)
{
    durationSeries.Points[i].Area.ForegroundColor = Color.FromArgb(255, 100 + i * 30, 150); // Gradient color variation
}

// Veri etiketlerini göster
chart.NSeries[1].DataLabels.ShowValue = true;


// Eksen Ayarları
chart.CategoryAxis.Title.Text = "Tasks";
chart.CategoryAxis.IsPlotOrderReversed = true;
chart.ValueAxis.Title.Text = "Days from Project Start";
chart.ValueAxis.MajorGridLines.IsVisible = true;
chart.ValueAxis.MinValue = 0;
chart.ValueAxis.MajorUnit = 5;

// Legend'i Kaldır
chart.ShowLegend = false;

// Grafiği yeniden boyutlandırın
chart.ChartObject.Width = 700;
chart.ChartObject.Height = 400;

// Excel'e Aktar
workbook.Save("CustomizedGanttChart.xlsx", SaveFormat.Xlsx);
Excel'de Gantt Chart'ı C# kullanarak Özelleştirin

Excel’de Gantt Şemasını C# Kullanarak Özelleştirin

Ücretsiz Lisans Alın

Aspose ürünlerini keşfetmekle mi ilgileniyorsunuz? Ücretsiz geçici lisans almak için license page sayfasını ziyaret edin. Başlamak ve projeleriniz için Aspose.Cells’in tam potansiyelini açmak oldukça kolay!

Gantt Chart Excel: Ücretsiz Kaynaklar

Burada durmayın! Aspose.Cells hakkındaki anlayışınızı daha da geliştirmek için ek kaynakları keşfedin. Bu kaynaklar, Excel otomasyonu konusunda ustalaşmanıza ve becerilerinizi güçlendirmenize yardımcı olacaktır.

Sonuç

Bu blog yazısında, C# kullanarak Excel’de bir Gantt şeması nasıl oluşturulacağını inceledik. Aspose.Cells for .NET, bu süreci güçlü özellikleri ve esnekliği ile basit hale getirir. Proje yönetimi becerilerinizi geliştirmek için Aspose.Cells for .NET hakkında daha fazla keşfetmenizi öneririz.

Herhangi bir sorunuz varsa veya daha fazla yardıma ihtiyacınız olursa, lütfen free support forum adresinden bize ulaşmaktan çekinmeyin.

Ayrıca Bakınız