IRONSOFTWAREHOME
IRONXL KULLANARAK

IronXL Kullanarak C# ile Excel Dosyaları Nasıl Oluşturulur

Curtis Chau
Curtis Chau
Updated: 28 Haziran 2026

C# dilinde programatik olarak Excel çalışma sayfası dosyalarını oluşturmak geleneksel olarak Microsoft Office kurulumunu veya karmaşık COM Interop gerektiriyordu. IronXL bunu tamamen değiştirir ve Excel dosyaları oluşturmak için basit bir API sunarak Office bağımlılıklarına ihtiyaç duymadan. Bu eğitici, temel tablo oluşturma, gelişmiş biçimlendirme ve veritabanı entegrasyonu üzerinden C# dilinde Excel dosyaları oluşturmanızı adım adım açıklar. Raporlar oluşturuyor, verileri (XLS veya XLSX dosyaları) dışa aktarıyor veya elektronik tablo oluşturmayı otomatikleştiriyor olun, siz .NET uygulamaları içinde Excel ile çalışma konusundaki temel teknikleri öğreneceksiniz.

C#'ta IronXL Kullanarak Excel Dosyasını Nasıl Oluşturulur: Görüntü 1 - IronXL

Microsoft Office Olmadan Neden Excel Dosyaları Oluşturmalısınız?

Office bağımlılıkları olmadan Excel oluşturma özelliklerini geliştirmek, kritik dağıtım zorluklarını çözer. Sunucu ortamları genellikle lisans maliyetleri ve kaynak yükü nedeniyle Microsoft Office kurulmuş halde olmaz. Her Office kurulumu, önemli miktarda disk alanı ve bellek gerektirir, bu da bulut dağıtımları veya kapsayıcı uygulamaları için pratik değildir.

IronXL bağımsız çalışarak bu kısıtlamaları ortadan kaldırır. C# Excel dosyası oluşturmanız Windows, Linux, macOS, Docker kapsayıcıları veya Azure Uygulama Hizmetleri üzerinde herhangi bir değişiklik yapmadan çalışır. Bu çapraz platform uyumluluğu, bir kez yazmanız ve her yere dağıtmanız anlamına gelir, .NET Framework, .NET Core veya .NET 10 uygulamalarını hedeflemeniz fark etmeksizin.

C#'ta IronXL Kullanarak Excel Dosyasını Nasıl Oluşturulur: Görüntü 2 - Çapraz Platform

COM Interop yükü olmadan performans dramatik şekilde artar. Geleneksel Office otomasyonu, her işlem için ayrı süreç örnekleri yaratır, belleği ve CPU kaynaklarını tüketir. IronXL, uygulamanızın işlem alanında hafızada her şeyi işler, bu da daha hızlı yürütme ve programatik olarak Excel dosyası oluştururken daha düşük kaynak tüketimi sağlar.

Dağıtım, IronXL tek bir NuGet paketi olarak gönderildiğinden daha kolay hale gelir. Kayıt girdileri yok, COM kaydı yok ve sürdürülecek Office hizmet paketleri yok. Devamlı entegrasyon hatlarınız sürtünmesiz çalışır, ve Docker kapsayıcıları hafif kalır. Bu basitleştirilmiş yaklaşım, çeşitli geliştirici forumlarında Excel otomasyonu ile ilgili tecrübelerini paylaşan profesyoneller tarafından tartışıldığı gibi IronXL'i popüler bir tercih haline getirmiştir.

Bazı geliştiriciler hala Office Open XML dosya yapıları ile doğrudan çalışmak için Microsoft'un Open XML Productivity Tool'unu keşfetmekte. Yine de, bu yaklaşım daha fazla elle çaba ve XML şeması ve Open XML SDK kurulumu hakkında ayrıntılı bilgi gerektirir. IronXL, bu karmaşıklıkları soyutlar, size Excel ile programatik çalışmanın çok daha hızlı bir yolunu sağlar.

C#'ta IronXL Kullanarak Excel Dosyasını Nasıl Oluşturulur: Görüntü 3 - Özellikler

IronXL C# Projesine Nasıl Kurulur?

IronXL'i kurmak Visual Studio'da NuGet Paket Yöneticisi üzerinden sadece birkaç an alır. Çözüm Gezgini'nde projenize sağ tıklayın ve 'Manage NuGet Packages'ı seçin. 'IronXL.Excel'i arayıp yükleyin. Paket, C# içinde Excel dosyaları oluşturmak için gereken tüm bağımlılıkları otomatik olarak içerir.

Paket Yöneticisi Konsolu veya .NET CLI üzerinden yüklemek için aşağıdaki komutlardan birini kullanın:

PM > Install-Package IronXL.Excel

C#'ta IronXL Kullanarak Excel Dosyasını Nasıl Oluşturulur: Görüntü 4 - Kurulum

Kütüphanenin hazır olduğunu doğrulamak için bu basit testi uygulayın:

using IronXL;
// Create an in-memory workbook
var workbook = WorkBook.Create();
Console.WriteLine("IronXL installed successfully!");

Bu hatasız çalışıyorsa, IronXL kullanıma hazırdır. Kütüphane, mevcut projelerinizle uyumluluğu sağlamak için tüm modern .NET sürümlerini destekler. Detaylı kurulum rehberi ve sorun giderme için resmi NuGet kurulum belgelendirmesine bakın.

Çıktı

C#'ta IronXL Kullanarak Excel Dosyasını Nasıl Oluşturulur: Görüntü 5 - Konsol Çıktısı

İlk Excel Dosyanızı Nasıl Oluşturursunuz?

IronXL ile Excel dosyaları oluşturmak, tüm Excel işlemlerine açılan kapınız olan WorkBook sınıfı ile başlar. Kütüphane, modern XLSX ve eski XLS formatlarını destekler, böylece C#'da bir Excel dosyası oluşturduğunuzda farklı gereksinimler için esneklik sağlar.

using IronXL;
// Create a new workbook (XLSX format by default)
WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX);
// Add metadata
workbook.Metadata.Title = "Monthly Sales Report";
workbook.Metadata.Author = "Sales Department";
workbook.Metadata.Comments = "Generated using IronXL";
// Create a worksheet
WorkSheet worksheet = workbook.CreateWorkSheet("January Sales");
// Add header row
worksheet["A1"].Value = "Date";
worksheet["B1"].Value = "Product";
worksheet["C1"].Value = "Quantity";
worksheet["D1"].Value = "Revenue";
// Add data rows
worksheet["A2"].Value = new DateTime(2024, 1, 15);
worksheet["B2"].Value = "Widget Pro";
worksheet["C2"].Value = 100;
worksheet["D2"].Value = 2500.00;
// Save the workbook
workbook.SaveAs("FirstExcelFile.xlsx");

Bu kod, Excel dosyası oluşturma için birkaç anahtar kavram gösterir. WorkBook.Create() yöntemi bellekte yeni bir Excel dosyası başlatır. Formatı ExcelFileFormat enumunu kullanarak belirtirsiniz -- modern Excel uyumluluğu için XLSX veya eski destek için XLS seçin. Metadata özelliği, Microsoft'un belge özelliği standartlarına uygun olarak Excel dosya özelliklerinde görünen belge bilgilerini eklemenize olanak tanır.

CreateWorkSheet() yöntemi, belirtilen isimle yeni bir sayfa ekler. Excel'in tanıdık hücre notasyonu (A1, B1, vb.), değerleri belirlemeyi sezgisel hale getirir. IronXL veri türü dönüşümünü otomatik olarak işler, tarihleri, sayıları ve metinleri açık döküm yapmadan tanır. SaveAs() yöntemi, tamamlanan Excel dosyasını disk üzerine yazar. Daha fazla çalışma sayfası işlemi için Excel dosyası yazma kılavuzuna göz atın.

Çıktı

C#'ta IronXL Kullanarak Excel Dosyasını Nasıl Oluşturulur: Görüntü 6 - Temel Excel Çıktısı

Veriyi Excel Hücrelerine Nasıl Yazarsınız?

IronXL, bireysel hücre atamadan toplu aralık işlemlerine kadar, Excel hücrelerini doldurmak için birden fazla yaklaşım sunar. Bu yöntemleri anlamak, bir Excel dosyasına yazarken veri senaryonuz için en verimli yaklaşımı seçmenize yardımcı olur.

using IronXL;
WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX);
WorkSheet worksheet = workbook.CreateWorkSheet("Employees");
// Individual cell assignment
worksheet["A1"].Value = "Employee Name";
worksheet["A2"].Value = "John Smith";
worksheet["A3"].Value = "Jane Doe";
// Range assignment for multiple cells at once
worksheet["B1:B3"].Value = "Active";
// Using numeric indices (0-based row, 0-based column)
worksheet.SetCellValue(0, 2, "Department"); // C1
worksheet.SetCellValue(1, 2, "Sales");       // C2
worksheet.SetCellValue(2, 2, "Marketing");   // C3
// Array-based header population
string[] headers = { "ID", "Name", "Email", "Phone" };
for (int i = 0; i < headers.Length; i++)
{
    worksheet.SetCellValue(0, i, headers[i]);
}
// Working with different data types
worksheet["E1"].Value = "Salary";
worksheet["E2"].Value = 75000.50m;  // Decimal for currency
worksheet["E3"].Value = 82000.75m;
worksheet["F1"].Value = "Start Date";
worksheet["F2"].Value = new DateTime(2020, 3, 15);
worksheet["F3"].Value = new DateTime(2019, 7, 1);
worksheet["G1"].Value = "Full Time";
worksheet["G2"].Value = true;  // Boolean
worksheet["G3"].Value = true;
workbook.SaveAs("EmployeeData.xlsx");

Kod, IronXL'in esnek hücre adreslemesini gösterir. Dizi notasyonu ("A1"), Excel kullanıcıları için doğal gelirken, sayısal indeksler döngüler ve dinamik üretimler için programatik kontrol sağlar. Menzil atamaları ('B1:B3'), kolonları başlatmak veya varsayılan değerler uygulamak için ideal olan birden fazla hücreyi aynı değere verimli bir şekilde ayarlar.

IronXL, farklı veri türlerini akıllıca işler. Ondalıklı sayılar finansal veriler için hassasiyeti korur, DateTime nesneleri Excel tarihleri olarak düzgün formatlanır, ve booleanlar TRUE/FALSE şeklinde görünür. Bu otomatik dönüştürme, veri bütünlüğünü sağlarken manuel biçimlendirme kodunu ortadan kaldırır. Büyük veri kümeleri için, daha fazla model için veri içeme kılavuzuna göz atın.

Çıktı

C#'ta IronXL Kullanarak Excel Dosyasını Nasıl Oluşturulur: Görüntü 7 - Excel Çıktısı

Excel Dosyalarına Profesyonel Biçimlendirmeyi Nasıl Uygularsınız?

Profesyonel Excel dosyaları ham veriden fazlasını gerektirir. IronXL'nin stil API'si, basit elektronik tabloları biçimlendirme, renkler ve görsel hiyerarşi aracılığıyla cilalı iş belgelerine dönüştürür. Elektronik tablo belgenizin her görsel yönünü kontrol etmek için hücre biçimlendirmesi uygulayabilirsiniz.

using IronXL;
WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX);
WorkSheet worksheet = workbook.CreateWorkSheet("Employees");
// Header formatting
var headerRange = worksheet["A1:D1"];
headerRange.Style.Font.Bold = true;
headerRange.Style.Font.Height = 12;
headerRange.Style.SetBackgroundColor("#4472C4");
headerRange.Style.Font.Color = "#FFFFFF";
// Column width adjustment
worksheet.AutoSizeColumn(0); // Auto-fit column A
worksheet.GetColumn(1).Width = 20; // Set column B width
// Number formatting
var salaryColumn = worksheet["E2:E3"];
salaryColumn.FormatString = "$#,##0.00";
// Date formatting
var dateColumn = worksheet["F2:F3"];
dateColumn.FormatString = "MM/dd/yyyy";
// Cell borders
var dataRange = worksheet["A1:G3"];
dataRange.Style.TopBorder.Type = IronXL.Styles.BorderType.Thin;
dataRange.Style.BottomBorder.Type = IronXL.Styles.BorderType.Thin;
dataRange.Style.LeftBorder.Type = IronXL.Styles.BorderType.Thin;
dataRange.Style.RightBorder.Type = IronXL.Styles.BorderType.Thin;
dataRange.Style.TopBorder.Color = "#000000";
dataRange.Style.BottomBorder.Color = "#000000";
// Text alignment
worksheet["A1:G1"].Style.HorizontalAlignment = IronXL.Styles.HorizontalAlignment.Center;
// Alternating row colors for readability (banded rows)
for (int row = 2; row <= 10; row++)
{
    if (row % 2 == 0)
    {
        worksheet[$"A{row}:G{row}"].Style.SetBackgroundColor("#F2F2F2");
    }
}
workbook.SaveAs("FormattedReport.xlsx");

Bu biçimlendirme kodu, iş standartlarına uygun bir profesyonel görünüm yaratır. Arka plan renkli kalın başlıklar, görsel hiyerarşi oluşturur. SetBackgroundColor() yöntemi, renk şemanız üzerinde hassas kontrol sağlayarak hex renk kodlarını kabul eder. Yazı tipi özellikleri arasında boyut, renk, kalın, italik ve altı çizili seçenekler bulunur - bunların tümü kurumsal marka yönergelerine uygun Excel dosyaları oluşturmada önemlidir.

Sütun genişliği ayarlamaları, metin kesilmesini önler. AutoSizeColumn() içeriği otomatik olarak sığdırırken, GetColumn().Width hassas kontrol sağlar. Sayı biçimlendirme, Excel'in format kodlarını kullanır - örneğin, '$#,##0.00' para birimini bin ayırıcıları ve iki ondalık basamakla gösterir. Tarih biçimlendirme de benzer desenlere uyar, Microsoft'un sayı format kodları referansında belgelenen standart Excel tarih format dizelerini kullanır.

Sınırlar, okunabilirliği artırarak veri sınırlarını tanımlar. BorderType enumu çeşitli stiller sunar: ince, orta, kalın, noktalı ve kesikli. Sık sık 'bantlı satırlar' olarak adlandırılan değişen satır renkleri, okuyucuların geniş veri setlerinde bilgileri takip etmelerine yardımcı olur. Hücre birleştirme ve diğer düzen özellikleri hakkında daha fazla bilgi için hücreleri birleştirme kılavuzuna bakın.

Çıktı

C#'ta IronXL Kullanarak Excel Dosyasını Nasıl Oluşturulur: Görüntü 8 - Biçimlendirilmiş Excel Çıktısı

Excel Formüllerini Programatik Olarak Nasıl Kullanırsınız?

Excel formülleri, otomatik hesaplamalarla elektronik tabloları canlandırır. IronXL, dinamik elektronik tablolar oluşturmanızı sağlayarak formül oluşturma ve değerlendirmeyi destekler, bu da otomatik olarak güncellenir.

using IronXL;
var workbook = WorkBook.Create();
// Create a budget worksheet
WorkSheet budget = workbook.CreateWorkSheet("Q1 Budget");
// Headers
budget["A1"].Value = "Category";
budget["B1"].Value = "January";
budget["C1"].Value = "February";
budget["D1"].Value = "March";
budget["E1"].Value = "Q1 Total";
// Budget categories and values
string[] categories = { "Salaries", "Marketing", "Operations", "Equipment", "Training" };
decimal[,] monthlyBudgets = {
    { 50000, 52000, 51000 },
    { 15000, 18000, 20000 },
    { 8000, 8500, 9000 },
    { 12000, 5000, 7000 },
    { 3000, 3500, 4000 }
};
// Populate data and add row total formulas
for (int i = 0; i < categories.Length; i++)
{
    budget[$"A{i + 2}"].Value = categories[i];
    budget[$"B{i + 2}"].Value = monthlyBudgets[i, 0];
    budget[$"C{i + 2}"].Value = monthlyBudgets[i, 1];
    budget[$"D{i + 2}"].Value = monthlyBudgets[i, 2];
    budget[$"E{i + 2}"].Formula = $"=SUM(B{i + 2}:D{i + 2})";
}
// Monthly totals row
budget["A7"].Value = "Monthly Total";
budget["B7"].Formula = "=SUM(B2:B6)";
budget["C7"].Formula = "=SUM(C2:C6)";
budget["D7"].Formula = "=SUM(D2:D6)";
budget["E7"].Formula = "=SUM(E2:E6)";
// Calculate percentages
budget["A9"].Value = "Marketing %";
budget["B9"].Formula = "=B3/B7*100";
// Average calculation
budget["A10"].Value = "Average Spending";
budget["B10"].Formula = "=AVERAGE(B2:B6)";
// Evaluate all formulas before saving
workbook.EvaluateAll();
workbook.SaveAs("Budget.xlsx");

Bu bütçe örneği, formüllerin pratik uygulamalarını sergiler. Formula özelliği, eşit işareti ile başlayan standart Excel formül sözdizimini kabul eder. IronXL, SUM, AVERAGE, COUNT, MAX, MIN ve daha birçok yaygın işlevi destekler. Formüllerdeki hücre referansları Excel'de olduğu gibi çalışır, göreceli ve mutlak referansları içerir.

EvaluateAll() yöntemi, tüm formülleri işler, kitap boyunca hesaplanan değerleri günceller. Bu, dosya Excel'de açıldığında formüllerin sonuçları göstermesini sağlar. Değerlendirme olmadan, Excel kullanıcı yeniden hesaplamayı tetikleyene kadar formül metnini gösterirdi. Formül sonuçlarını okuma hakkında daha fazla bilgi için Excel dosyası okuma belgelerine bakın.

Çıktı

C#'ta IronXL Kullanarak Excel Dosyasını Nasıl Oluşturulur: Görüntü 9 - Formüller Kullanarak Excel Çıktısı

Veritabanı Verilerini Excel'e Nasıl Aktarırsınız?

Gerçek dünya uygulamaları, genellikle raporlama ve analiz için veritabanı verilerini Excel'e aktarır. IronXL, yerleşik DataTable desteği ile bu süreci basit hale getirir, C# uygulamalarından Excel'e veri aktarırken manuel alan eşlemeye olan ihtiyacı ortadan kaldırır.

using System.Data;
using IronXL;

// Simulate database retrieval (replace with actual database code)
DataTable GetSalesData()
{
    DataTable dt = new DataTable("Sales");
    dt.Columns.Add("OrderID", typeof(int));
    dt.Columns.Add("CustomerName", typeof(string));
    dt.Columns.Add("Product", typeof(string));
    dt.Columns.Add("Quantity", typeof(int));
    dt.Columns.Add("UnitPrice", typeof(decimal));
    dt.Columns.Add("OrderDate", typeof(DateTime));
    dt.Rows.Add(1001, "ABC Corp", "Widget Pro", 50, 25.99m, DateTime.Now.AddDays(-5));
    dt.Rows.Add(1002, "XYZ Ltd", "Widget Basic", 100, 15.99m, DateTime.Now.AddDays(-4));
    dt.Rows.Add(1003, "ABC Corp", "Widget Premium", 25, 45.99m, DateTime.Now.AddDays(-3));
    dt.Rows.Add(1004, "Tech Solutions", "Widget Pro", 75, 25.99m, DateTime.Now.AddDays(-2));
    dt.Rows.Add(1005, "XYZ Ltd", "Widget Premium", 30, 45.99m, DateTime.Now.AddDays(-1));
    return dt;
}

// Export to Excel
WorkBook reportWorkbook = WorkBook.Create();
WorkSheet reportSheet = reportWorkbook.CreateWorkSheet("Sales Report");
DataTable salesData = GetSalesData();

// Title row
reportSheet["A1"].Value = "Order Report - " + DateTime.Now.ToString("MMMM yyyy");
reportSheet.Merge("A1:F1");
reportSheet["A1"].Style.Font.Bold = true;
reportSheet["A1"].Style.Font.Height = 14;

// Headers
int headerRow = 3;
for (int col = 0; col < salesData.Columns.Count; col++)
{
    reportSheet.SetCellValue(headerRow - 1, col, salesData.Columns[col].ColumnName);
}
var headers = reportSheet[$"A{headerRow}:F{headerRow}"];
headers.Style.Font.Bold = true;
headers.Style.SetBackgroundColor("#D9E1F2");

// Data rows
for (int row = 0; row < salesData.Rows.Count; row++)
{
    for (int col = 0; col < salesData.Columns.Count; col++)
    {
        reportSheet.SetCellValue(row + headerRow, col, salesData.Rows[row][col]);
    }
    reportSheet[$"G{row + headerRow + 1}"].Formula = $"=D{row + headerRow + 1}*E{row + headerRow + 1}";
}

// Total header
reportSheet["G3"].Value = "Total";
reportSheet["G3"].Style.Font.Bold = true;
reportSheet["G3"].Style.SetBackgroundColor("#D9E1F2");
// Format currency and date columns
reportSheet[$"E{headerRow + 1}:E{headerRow + salesData.Rows.Count}"].FormatString = "$#,##0.00";
reportSheet[$"G{headerRow + 1}:G{headerRow + salesData.Rows.Count}"].FormatString = "$#,##0.00";
reportSheet[$"F{headerRow + 1}:F{headerRow + salesData.Rows.Count}"].FormatString = "MM/dd/yyyy";

// Summary section
int summaryRow = headerRow + salesData.Rows.Count + 2;
reportSheet[$"A{summaryRow}"].Value = "Summary";
reportSheet[$"A{summaryRow}"].Style.Font.Bold = true;
reportSheet[$"A{summaryRow + 1}"].Value = "Total Orders:";
reportSheet[$"B{summaryRow + 1}"].Formula = $"=COUNTA(A{headerRow + 1}:A{headerRow + salesData.Rows.Count})";
reportSheet[$"A{summaryRow + 2}"].Value = "Total Revenue:";
reportSheet[$"B{summaryRow + 2}"].Formula = $"=SUM(G{headerRow + 1}:G{headerRow + salesData.Rows.Count})";
reportSheet[$"B{summaryRow + 2}"].FormatString = "$#,##0.00";

for (int col = 0; col <= 6; col++) { reportSheet.AutoSizeColumn(col); }
reportWorkbook.EvaluateAll();
reportWorkbook.SaveAs("DatabaseExport.xlsx");

Bu örnek, eksiksiz bir veritabanından Excel'e iş akışını gösterir. DataTable veritabanı alımını simüle eder -- üretimde, bunu Entity Framework, Dapper veya ADO.NET kullanarak gerçek veritabanı sorgularıyla değiştirin. Elle eşleştirme yaklaşımı, Microsoft'un veri dışa aktarma en iyi uygulamaları tarafından önerildiği gibi biçimlendirme ve layout üzerinde tam kontrol sağlar.

Kod, bir başlık, biçimlendirilmiş başlıklar ve veri satırları içeren profesyonel bir rapor oluşturur. Formül sütunları, nihai toplamları dinamik olarak hesaplar. Özet bölümü, Excel formüllerini kullanarak siparişleri sayar ve geliri toplar, böylece veriler değişirse bu değerlerin güncellenmesini sağlar. DataSet'ler ve daha büyük veri yapıları ile çalışmak için Excel ile DataSet dönüşüm kılavuzuna bakın.

Çıktı

C#'ta IronXL Kullanarak Excel Dosyasını Nasıl Oluşturulur: Görüntü 10 - Veritabanı İhracatından Excel Çıktısı

Excel raporlarını üretime aktarmanız mı gerekiyor? IronXL'in tam potansiyelini açığa çıkarmak için bir lisans alın.

Çoklu Çalışma Sayfaları Nasıl Yönetilir?

Karmaşık Excel dosyaları, ilgili verileri düzenlemek için genellikle birden çok çalışma sayfasına ihtiyaç duyar. IronXL, çalışma sayfalarını oluşturma, erişme ve düzenleme için sezgisel yöntemlerle çok sayfalı yönetimi kolaylaştırır. Sadece birkaç satır kodla çalışma kitabı sayfalarını açabilir ve yönetebilirsiniz.

using IronXL;
WorkBook companyReport = WorkBook.Create();
// Create department sheets
WorkSheet salesSheet = companyReport.CreateWorkSheet("Sales");
WorkSheet inventorySheet = companyReport.CreateWorkSheet("Inventory");
WorkSheet summarySheet = companyReport.CreateWorkSheet("Summary");

// Populate Sales sheet
salesSheet["A1"].Value = "Sales Dashboard";
salesSheet["A3"].Value = "Region";
salesSheet["B3"].Value = "Q1 Sales";
salesSheet["C3"].Value = "Q2 Sales";
string[] regions = { "North", "South", "East", "West" };
decimal[] q1Sales = { 250000, 180000, 220000, 195000 };
decimal[] q2Sales = { 275000, 195000, 240000, 210000 };
for (int i = 0; i < regions.Length; i++)
{
    salesSheet[$"A{i + 4}"].Value = regions[i];
    salesSheet[$"B{i + 4}"].Value = q1Sales[i];
    salesSheet[$"C{i + 4}"].Value = q2Sales[i];
}

// Populate Inventory sheet
inventorySheet["A1"].Value = "Inventory Status";
string[] products = { "Widget A", "Widget B", "Widget C" };
int[] stock = { 150, 45, 200 };
int[] reorderPoint = { 100, 50, 75 };
for (int i = 0; i < products.Length; i++)
{
    inventorySheet[$"A{i + 4}"].Value = products[i];
    inventorySheet[$"B{i + 4}"].Value = stock[i];
    inventorySheet[$"C{i + 4}"].Value = reorderPoint[i];
    string status = stock[i] <= reorderPoint[i] ? "REORDER" : "OK";
    inventorySheet[$"D{i + 4}"].Value = status;
    if (status == "REORDER")
        inventorySheet[$"D{i + 4}"].Style.Font.Color = "#FF0000";
}

// Summary sheet with cross-sheet formulas
summarySheet["A1"].Value = "Company Overview";
summarySheet["A4"].Value = "Total Q1 Sales";
summarySheet["B4"].Formula = "=SUM(Sales!B4:B7)";
summarySheet["A5"].Value = "Total Q2 Sales";
summarySheet["B5"].Formula = "=SUM(Sales!C4:C7)";
summarySheet["A6"].Value = "Products Need Reorder";
summarySheet["B6"].Formula = "=COUNTIF(Inventory!D4:D6,\"REORDER\")";

// Apply consistent formatting across all sheets
foreach (WorkSheet sheet in companyReport.WorkSheets)
{
    sheet["A1"].Style.Font.Bold = true;
    sheet["A1"].Style.Font.Height = 14;
}
companyReport.SaveAs("CompanyReport.xlsx");

Bu örnek, tamamlanmış bir çok sayfalı rapor oluşturur. Her çalışma sayfası belli bir amaca hizmet eder: satış verileri, envanter takibi ve özet görünüm. Özet sayfası, önemli metrikleri sayfalar arası formüller kullanarak birleştirir. Sayfa referans sözdizimine dikkat edin -- 'Sales!B4:B7', Satış sayfasındaki B4 ila B7 hücrelerini belirtir.

Envanter sayfası, anlık dikkat gerektiren düşük stoklu ürünleri kırmızıya boyayarak koşullu mantığı göstermektedir. foreach döngüsü, kitap boyunca profesyonel bir görünüm sağlayarak tüm sayfalar üzerinde tutarlı bir biçimlendirme uygular. Sayfa adları Excel'de sekme olarak görünür, böylece kullanıcılar farklı veri görünümleri arasında kolayca gezinebilirler.

C#'da Excel Dosyası Oluşturma İçin En İyi Yöntemler Nelerdir?

C#, bellek kullanımı, hata yönetimi ve dağıtım için dikkatli yaklaşımlar gerektiren verimli Excel dosyası oluşturma imkanı sunar. Bu uygulamalar, Excel elektronik tablolarını programlı olarak oluştururken güvenilirliği koruyarak uygulamalarınızın etkili bir şekilde ölçeklenmesini sağlar.

Büyük dosyalarda bellek yönetimi kritik hale gelir. Verileri toplu olarak işleyin, bir kerede tüm veri kümelerini yüklemek yerine. Aşağıdaki desen, yüksek hacimli dışa aktarmalar için bellek kullanımını öngörülebilir tutar:

using IronXL;
WorkBook workbook = WorkBook.Create();
WorkSheet sheet = workbook.CreateWorkSheet("Data");
int rowsPerBatch = 1000;
int currentRow = 2;
sheet["A1"].Value = "ID";
sheet["B1"].Value = "Name";
sheet["C1"].Value = "Value";
// Process records in manageable batches
foreach (var batch in GetDataInBatches(rowsPerBatch))
{
    foreach (var record in batch)
    {
        sheet[$"A{currentRow}"].Value = record.Id;
        sheet[$"B{currentRow}"].Value = record.Name;
        sheet[$"C{currentRow}"].Value = record.Value;
        currentRow++;
    }
}
workbook.SaveAs("LargeDataset.xlsx");

Web uygulamaları için, Excel dosyalarını bellek içinde oluşturun ve kullanıcıya doğrudan akıtın, geçici dosyaları diske yazmak yerine. Çöküntüleri önlemek ve anlamlı geri bildirim sağlamak için her zaman oluşturma mantığını hata işleme içine alın:

// ASP.NET Core controller action with error handling
IActionResult DownloadExcel()
{
    try
    {
        WorkBook workbook = WorkBook.Create();
        WorkSheet sheet = workbook.CreateWorkSheet("Report");
        sheet["A1"].Value = "Report Data";
        // Populate report data here...
        var stream = new MemoryStream();
        workbook.SaveAs(stream);
        stream.Position = 0;
        return File(stream,
            "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
            "report.xlsx");
    }
    catch (Exception ex)
    {
        Console.WriteLine($"Excel generation failed: {ex.Message}");
        return StatusCode(500, "Failed to generate Excel file.");
    }
}

Aşağıdaki tablo, temel en iyi uygulamaları ve ne zaman uygulanacağını özetler:

C# Dilinde Excel Oluşturma için IronXL En İyi Uygulamaları
SenaryoÖnerilen YaklaşımFayda
Large datasets (>10,000 rows)Parça yazmalarıyla toplu işlemeAzaltılmış bellek ayak izi
Web uygulama indirmeleriÜzerinde çalıştığınız geçici dosyalar yerine MemoryStream kullanımıDisk IO yok, daha hızlı yanıt
Prodüksiyon dağıtımıGeçerli IronXL lisans anahtarını ekleyinOluşturulan dosyalarda filigran yok
Para birimi ve tarihlerFormatString özelliğini kullanExcel'de doğru yerel görünüm
Dinamik raporlarEvaluateAll()'ı SaveAs()'tan önce çağırınFormüller hesaplanmış değerler gösterir

IronXL, yükseltilmiş izinler olmadan kısıtlı ortamlarda çalışır, bu da onu paylaşımlı barındırma ve konteynerleştirilmiş dağıtımlar için uygun hale getirir. Dağıtım paketinizde IronXL lisans dosyasını dahil edin ve uygulamanızın ihtiyaç duyulan geçici dosya işlemleri için yazma izinlerine sahip olduğundan emin olun. Ek dağıtım rehberi için IronXL özellikler genel bakışını ve tam API belgelendirmesini inceleyin.

Buradan Nereye Gidebilirsiniz?

IronXL, C# dilinde Excel dosyası oluşturmayı karmaşık bir meydan okumadan basit bir kodlamaya dönüştürür. Çalışma kitapları oluşturmayı, hücreleri doldurmayı, biçimlendirmeyi uygulamayı, formülleri kullanmayı, veritabanı verilerini dışa aktarmayı ve çoklu çalışma sayfalarını yönetmeyi öğrendiniz - tümü Microsoft Office bağımlılığı olmadan. Bu teknikler, .NET 10'u hedefleyen Windows, Linux ve bulut platformları genelinde tutarlılıkla çalışır.

Daha derine inmek için, mevcut Excel dosyalarını okuma ve değiştirme için IronXL nasıl yapılır kılavuzlarına veya üretimde başlamanız için deneme lisansı sayfasına göz atın. Proje gereksinimlerinize ve ölçeğinize uygun lisanslama seçeneklerini görüntüleyin.

Curtis Chau
Teknik Yazar

Curtis Chau, Bilgisayar Bilimleri alanında Lisans Derecesine (Carleton Üniversitesi) sahip ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirmeyle ilgileniyor. Sezgisel ve estetik açıdan hoş kullanıcı arayüzleri oluşturma tutkunu, Curtis modern çerçevelerle çalışmayı ve iyi yapılandırılmış, görsel olarak çekici kılavuzlar oluşturmayı seviyor.

...
Daha Fazla Oku

İlgili Makaleler

Key in blue circle

Ücretsiz 30 günlük Deneme Anahtarınızı anında edinin.

Your trial license will be sent to your email address

Herhangi bir sınırlama yoktur. %100 erişim. Kredi kartı gerekmez.

bullet_checkedKredi kartı veya hesap oluşturma gerektirmezHerhangi bir sınırlama yoktur. %100 erişim. Kredi kartı gerekmez.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Ücretsiz Canlı Demo rezervasyonu yapın
Booking Badge

Dünya Çapında Milyonlarca Mühendisin Güvendiği

Iron Software müşteri logoları
Bağımsız Danışmanlık Alın
Aşağıdaki formu doldurun veya sales@ironsoftware.com adresine e-posta gönderin
Bilgileriniz daima gizli kalacaktır.
Dünya Çapında Milyonlarca Mühendisin Güvendiği
Iron Software müşteri logoları
Ücretsiz 30 Günlük Deneme Anahtarınızı anında alın.
Kredi kartı veya hesap oluşturma gerektirmez