Altbilgi içeriğine atla
IRONXL KULLANARAK

Microsoft Office Olmadan C# İçinde Bir Excel Dosyası Nasıl Açılır

IronXL ile Microsoft Office yüklemeye gerek kalmadan C# içinde Excel dosyalarını açabilir ve okuyabilirsiniz -- sadece NuGet paketini yükleyin, bir çalışma kitabını WorkBook.Load("file.xlsx") ile yükleyin ve yazılmış değerler ve otomatik format algılama ile her türlü çalışma sayfasına, hücreye veya aralığa erişin.

Eger Microsoft Office olmadan programatik olarak Excel dosyalarini acmayi denediyseniz, geleneksel Interop yönteminin ne kadar tricky oldugunu biliyorsunuzdur. Interop, Excel'in kurulu olmasina gerek duyar, karmaşık COM referanslarına ihtiyaç duyar ve sürüm çatışmaları sıklıkla olur -- özellikle de Office'in mevcut olmadığı sunucular veya bulut ortamlarinda.

IronXL modern bir .NET kutuphanesidir ve XLSX, XLS, CSV ve TSV dosyalarini doğrudan ofis bagimliligi gerekli olmadan okumaniz saglar. Temiz, guvenilir C# kodu yazabilir, Excel dosyalarini Windows, Linux veya bulutta isleyebilir ve COM otomasyonunun tüm surtusunu atlayabilirsiniz. Bu kılavuz kurulumdan, Excel calisma kitaplarini acmaya ve okumaya hazır kaliplara kadar her seyi ele alir.

Bir .NET Projesine IronXL Nasıl Kurulur?

Başlamak sadece birkaç saniye alir. Projenizi acin ve asagida belirtilen paket yoneticilerinden birini kullanin:

Install-Package IronXL
dotnet add package IronXL
Install-Package IronXL
dotnet add package IronXL
SHELL

Alternatif olarak Visual Studio'yu acin, projenize sağ tıklayın, "NuGet Paketlerini Yonet"'i secin, "IronXL"'yi aratin ve Yükle'ye tiklayin. Kurulum kılavuzu Docker ve Azure dahil butun desteklenen ortamları kapsar.

Visual Studio NuGet Paket Yöneticisi IronXl.Excel paketini gösteriyor; kurulum için sürüm 2025.9.1 mevcut

Kurulduktan sonra, dosyanizin ust kismina ad alanini ekleyin:

using IronXL;
using IronXL;
Imports IronXL
$vbLabelText   $csharpLabel

O tek satir ihtiyaçiniz olan her sey. Karmaşık COM referansları yok, Office bağımlılıkları yok ve sürüme özel montajlar yok. Ücretsiz bir degerlendirme anahtari icin IronXL deneme lisans sayfasini ziyaret edin.

IronXL Neden Geleneksel Interop'tan Daha Kolay?

Geleneksel Excel Interop, kodunuzu calistan her makinada Microsoft Office gerektirir. Bu, sunucu dağıtımları, AWS Lambda işlevleri ve konteyner uygulamaları için pratiksizdir. IronXL, herhangi bir dis bagimlilik olmadan calisan temiz bir API saglayarak tüm Excel dosya parsellemelerini icten halleder.

Interop ile, bellek sızıntılarını önlemek için COM nesne ömürlerini dikkatle yönetmeniz gerekir -- her Application, Workbook ve Worksheet nesnesi açıkça serbest bırakılmalıdır, aksi takdirde Excel işlemleri arka planda birikir. IronXL, standart .NET çöp toplayıcısını kullanır, bu yüzden COM temizleme hakkında dusunmeniz gerekmez.

Kutuphane, .NET Framework 4.6.2 ve uzeri, .NET 5, 6, 7, 8 ve 10'yi destekler. Windows, macOS ve Linux'te değişiklik yapilmadan calisir. Cross-platform senaryolarını hedefliyorsaniz, bu tek basina IronXL'i Office Interop'tan - Windows'a ozgu - çok daha uygun hale getirir.

Kurulumun Calistiginin Kontrolu Nasıl Yapilir?

Kurulumdan sonra, herhangi bir Excel dosyasini yükleyip bir hucre degerini yazdirarak basit bir test oluşturun. Eğer proje hatasız bir şekilde derleniyor ve çıktı beklenen verilerle uyuşuyor ise, kurulum tamamlanmıştır. IronXL dokümantasyonu bu doğrulama adimini detayli bir sekilde ele alan hizli başlangic bölümune sahiptir.

Kurulum sirasinda yaygin bir hata, uretimde bir calisma kitabini yuklemeden once bir lisans anahtari uygulamamayi unutmaktır. Kitaplık, deneme modunda herhangi bir üretilmiş dosyaya küçük bir filigran ekler. Tüm işlemler baştan doğru lisans altında çalışması için IronXl.License.LicenseKey uygulama başlatıldığında ayarlayın.

Bir Excel Calisma Kitabi Nasıl Açilip Hucre Degerleri Okunur?

Ana API basittir. Bir calisma kitabi yukleyin, bir calisma sayfasi secin ve adresle veya tekrar ile hucrelere erisin.

using IronXL;

// Load any Excel file -- XLSX, XLS, CSV, or TSV
WorkBook workbook = WorkBook.Load("example.xlsx");

// Access the second worksheet (zero-indexed)
WorkSheet worksheet = workbook.WorkSheets[1];

// Read a specific cell value
decimal revenue = worksheet["E2"].DecimalValue;
Console.WriteLine($"Order Total: {revenue}");

// Iterate over a range of cells
foreach (var cell in worksheet["C2:C6"])
{
    Console.WriteLine($"Product: {cell.Text}");
}
using IronXL;

// Load any Excel file -- XLSX, XLS, CSV, or TSV
WorkBook workbook = WorkBook.Load("example.xlsx");

// Access the second worksheet (zero-indexed)
WorkSheet worksheet = workbook.WorkSheets[1];

// Read a specific cell value
decimal revenue = worksheet["E2"].DecimalValue;
Console.WriteLine($"Order Total: {revenue}");

// Iterate over a range of cells
foreach (var cell in worksheet["C2:C6"])
{
    Console.WriteLine($"Product: {cell.Text}");
}
Imports IronXL

' Load any Excel file -- XLSX, XLS, CSV, or TSV
Dim workbook As WorkBook = WorkBook.Load("example.xlsx")

' Access the second worksheet (zero-indexed)
Dim worksheet As WorkSheet = workbook.WorkSheets(1)

' Read a specific cell value
Dim revenue As Decimal = worksheet("E2").DecimalValue
Console.WriteLine($"Order Total: {revenue}")

' Iterate over a range of cells
For Each cell In worksheet("C2:C6")
    Console.WriteLine($"Product: {cell.Text}")
Next
$vbLabelText   $csharpLabel

WorkBook.Load() dosya formatını otomatik olarak algılar -- dosyanın XLS veya XLSX olduğunu belirtmenize gerek yoktur. workbook.GetWorkSheet("Sheet1") kullanarak çalışma sayfalarına indeks veya isimle erişin. Her hücre IntValue, DecimalValue, DateTimeValue ve Text gibi yazılmış özellikleri ortaya çıkarır.

Dosya açma seçenekleri için, çalışma kitabı açma rehberini inceleyin.

Bir Excel elektronik tablosu sol tarafta sipariş verileriyle, sağda Visual Studio hata ayıklama konsolu ile çıkarılan verilerle birlikte bölünmüş ekran

Adlarına Göre Çalışma Sayfalarına Nasıl Erişilir?

Calisma sayfasi adlari, özellikle calisma kitaplari baskalari tarafindan duzenlendiklerinde numerik indekslerden daha surdurulebilirdir. Asagidaki örnek, bir sayfayı ada göre nasıl bulacağınızı ve tüm sayfalar arasında nasıl dolasacaginizi gösterir:

using IronXL;

WorkBook workbook = WorkBook.Load("inventory.xlsx");

// Access worksheet by exact name
WorkSheet salesSheet = workbook.GetWorkSheet("Sales Data");
Console.WriteLine($"Sales sheet rows: {salesSheet.RowCount}");

// Iterate all worksheets in the workbook
foreach (WorkSheet sheet in workbook.WorkSheets)
{
    if (sheet.Name.Contains("Inventory"))
    {
        Console.WriteLine($"Found inventory sheet: {sheet.Name}");
    }
}
using IronXL;

WorkBook workbook = WorkBook.Load("inventory.xlsx");

// Access worksheet by exact name
WorkSheet salesSheet = workbook.GetWorkSheet("Sales Data");
Console.WriteLine($"Sales sheet rows: {salesSheet.RowCount}");

// Iterate all worksheets in the workbook
foreach (WorkSheet sheet in workbook.WorkSheets)
{
    if (sheet.Name.Contains("Inventory"))
    {
        Console.WriteLine($"Found inventory sheet: {sheet.Name}");
    }
}
Imports IronXL

Dim workbook As WorkBook = WorkBook.Load("inventory.xlsx")

' Access worksheet by exact name
Dim salesSheet As WorkSheet = workbook.GetWorkSheet("Sales Data")
Console.WriteLine($"Sales sheet rows: {salesSheet.RowCount}")

' Iterate all worksheets in the workbook
For Each sheet As WorkSheet In workbook.WorkSheets
    If sheet.Name.Contains("Inventory") Then
        Console.WriteLine($"Found inventory sheet: {sheet.Name}")
    End If
Next
$vbLabelText   $csharpLabel

Excel dosyasi okuma kılavuzu dinamik olarak oluşturulmus sayfa adlarina sahip calisma kitaplari ile calismayi da iceren ek calisma sayfasi erişim kaliplarini aciklar.

Excel Hucrelerinden Farkli Veri Tipleri Nasıl Okunur?

IronXL, her yaygin Excel veri tipi icin tip atanmis erişimciler sunar. Sadece manuel ayrıştırma olmadan stringler, tamsayılar, ondalıklar, tarihler, booleanlar ve formül sonuçlarını okuyabilirsiniz.

using IronXL;

WorkBook wb = WorkBook.Load(@"C:\Data\Inventory.xlsx");
WorkSheet ws = wb.GetWorkSheet("Products");

// Read different data types directly
string productName = ws["A2"].StringValue;
int quantity       = ws["B2"].IntValue;
decimal price      = ws["C2"].DecimalValue;
DateTime updated   = ws["D2"].DateTimeValue;

// Use aggregate functions on ranges for performance
decimal totalStock = ws["B2:B100"].Sum();
decimal maxPrice   = ws["C2:C100"].Max();

Console.WriteLine($"Product: {productName}, Qty: {quantity}, Price: {price:C}");
Console.WriteLine($"Total stock units: {totalStock}, Highest price: {maxPrice:C}");
using IronXL;

WorkBook wb = WorkBook.Load(@"C:\Data\Inventory.xlsx");
WorkSheet ws = wb.GetWorkSheet("Products");

// Read different data types directly
string productName = ws["A2"].StringValue;
int quantity       = ws["B2"].IntValue;
decimal price      = ws["C2"].DecimalValue;
DateTime updated   = ws["D2"].DateTimeValue;

// Use aggregate functions on ranges for performance
decimal totalStock = ws["B2:B100"].Sum();
decimal maxPrice   = ws["C2:C100"].Max();

Console.WriteLine($"Product: {productName}, Qty: {quantity}, Price: {price:C}");
Console.WriteLine($"Total stock units: {totalStock}, Highest price: {maxPrice:C}");
Imports IronXL

Dim wb As WorkBook = WorkBook.Load("C:\Data\Inventory.xlsx")
Dim ws As WorkSheet = wb.GetWorkSheet("Products")

' Read different data types directly
Dim productName As String = ws("A2").StringValue
Dim quantity As Integer = ws("B2").IntValue
Dim price As Decimal = ws("C2").DecimalValue
Dim updated As DateTime = ws("D2").DateTimeValue

' Use aggregate functions on ranges for performance
Dim totalStock As Decimal = ws("B2:B100").Sum()
Dim maxPrice As Decimal = ws("C2:C100").Max()

Console.WriteLine($"Product: {productName}, Qty: {quantity}, Price: {price:C}")
Console.WriteLine($"Total stock units: {totalStock}, Highest price: {maxPrice:C}")
$vbLabelText   $csharpLabel

Altindaki tablo mevcut tip atanmis erişimcileri özetler:

IronXL hucre degeri erişimcileri veri tipine gore
Erişimci Donus Tipi Notlar
StringValue string Daima bir string donderir, numerik hucreler icin bile
IntValue int Ondalik degerleri keser
DecimalValue decimal Finansal veriler icin en iyisi
DoubleValue double Bilimsel veya kayan nokta degerleri icin
DateTimeValue DateTime Excel seri tarih numaralarini otomatik olarak ayrıştırır
BoolValue bool TRUE/FALSE hucrelerini okur
Formula string Formul metnini doner, orznegin =SUM(A2:D2)

Hucre veri okuma ve yazma konusunda tam detaylar icin hucre formatlama kılavuzuna ve veri ithal kılavuzuna bakin.

Ürün, Miktar, Fiyat ve Son Güncelleme sütunlarıyla ürün envanter verilerini gösteren Excel elektronik tablosu, yanında C# kullanılarak programatik olarak okunan aynı verilere sahip Visual Studio Hata Ayıklama Konsolu

Boş veya Null Hücrelerle Güvenli Bir Sekilde Nasıl Baselirsiniz?

Gerçek dunya Excel dosyalarinda bos hucreler yaygindir. Typed erişicileri okumadan önce IsEmpty özelliğini kullanın veya Value'u null için kontrol edin:

using IronXL;

WorkBook workbook = WorkBook.Load("data.xlsx");
WorkSheet ws = workbook.DefaultWorkSheet;

// Check if a cell is empty before reading
if (!ws["A1"].IsEmpty)
{
    Console.WriteLine(ws["A1"].StringValue);
}

// Provide a fallback value using a null-coalescing pattern
string cellText = ws["A1"].StringValue ?? "Default Value";

// Iterate a range and skip empty cells
foreach (var cell in ws["A1:A20"])
{
    if (!cell.IsEmpty)
    {
        Console.WriteLine(cell.Text);
    }
}
using IronXL;

WorkBook workbook = WorkBook.Load("data.xlsx");
WorkSheet ws = workbook.DefaultWorkSheet;

// Check if a cell is empty before reading
if (!ws["A1"].IsEmpty)
{
    Console.WriteLine(ws["A1"].StringValue);
}

// Provide a fallback value using a null-coalescing pattern
string cellText = ws["A1"].StringValue ?? "Default Value";

// Iterate a range and skip empty cells
foreach (var cell in ws["A1:A20"])
{
    if (!cell.IsEmpty)
    {
        Console.WriteLine(cell.Text);
    }
}
Imports IronXL

Dim workbook As WorkBook = WorkBook.Load("data.xlsx")
Dim ws As WorkSheet = workbook.DefaultWorkSheet

' Check if a cell is empty before reading
If Not ws("A1").IsEmpty Then
    Console.WriteLine(ws("A1").StringValue)
End If

' Provide a fallback value using a null-coalescing pattern
Dim cellText As String = If(ws("A1").StringValue, "Default Value")

' Iterate a range and skip empty cells
For Each cell In ws("A1:A20")
    If Not cell.IsEmpty Then
        Console.WriteLine(cell.Text)
    End If
Next
$vbLabelText   $csharpLabel

Excel dosyasını okuma ile ilgili belgeler, seyrek verilerle başa çıkmak için ek kalıpları kapsar, bir çalışma sayfasındaki son kullanılan satır ve sütunun nasıl algılanacağını da dahil eder.

Boş hücrelerle başa çıkarken başka bir dikkat edilecek husus, tamamen boş bir hücre ile içinde boş bir dize bulunan bir hücre arasındaki farktır. IsEmpty hücrede hiç değer olmadığında true döndürürken, StringValue boş hücreler ve açıkça "" olarak ayarlanmış hücreler için boş bir string döndürür. Verilerinizde boş görünen metin olarak formatlanmış hücreler varsa, en doğru sonuca ulaşmak için hem IsEmpty hem de string.IsNullOrWhiteSpace(cell.StringValue) kontrol edin.

Üretime hazır bir Excel okuyucu nasıl oluşturulur?

Gerçek dünya Excel okuyucusunun dosya doğrulaması, hata yönetimi, çok sayfalı destek ve isteğe bağlı çıktı üretimi gerekir. Aşağıdaki örnek, tüm bu kalıpları tek bir sınıfta göstermektedir:

using IronXL;
using System.IO;

// Validate and load the file
static List<string> CheckLowStock(string filePath)
{
    var lowStockItems = new List<string>();

    if (!File.Exists(filePath))
    {
        Console.WriteLine($"File not found: {filePath}");
        return lowStockItems;
    }

    string ext = Path.GetExtension(filePath).ToLower();
    if (ext is not (".xlsx" or ".xls" or ".csv"))
    {
        Console.WriteLine($"Unsupported file type: {ext}");
        return lowStockItems;
    }

    try
    {
        WorkBook workbook = WorkBook.Load(filePath);

        foreach (WorkSheet sheet in workbook.WorkSheets)
        {
            Console.WriteLine($"Checking sheet: {sheet.Name}");

            for (int row = 2; row <= sheet.RowCount; row++)
            {
                string itemName  = sheet[$"A{row}"].StringValue;
                int stockLevel   = sheet[$"B{row}"].IntValue;

                if (stockLevel < 10 && !string.IsNullOrEmpty(itemName))
                {
                    lowStockItems.Add($"{itemName} -- {stockLevel} units ({sheet.Name})");
                }
            }
        }
    }
    catch (Exception ex)
    {
        Console.WriteLine($"Error reading Excel file: {ex.Message}");
    }

    return lowStockItems;
}

// Export results to a new workbook
static void ExportReport(List<string> items, string outputPath)
{
    WorkBook report     = WorkBook.Create();
    WorkSheet sheet     = report.CreateWorkSheet("Low Stock Report");

    sheet["A1"].Value   = "Item Description";
    sheet["B1"].Value   = "Source Sheet";

    sheet["A1:B1"].Style.Font.Bold        = true;
    sheet["A1:B1"].Style.BackgroundColor  = "#4472C4";
    sheet["A1:B1"].Style.Font.Color       = "#FFFFFF";

    int rowIndex = 2;
    foreach (string item in items)
    {
        sheet[$"A{rowIndex}"].Value = item;
        rowIndex++;
    }

    report.SaveAs(outputPath);
    Console.WriteLine($"Report saved to: {outputPath}");
}

// Run
var lowStockItems = CheckLowStock("inventory.xlsx");
ExportReport(lowStockItems, "low-stock-report.xlsx");
using IronXL;
using System.IO;

// Validate and load the file
static List<string> CheckLowStock(string filePath)
{
    var lowStockItems = new List<string>();

    if (!File.Exists(filePath))
    {
        Console.WriteLine($"File not found: {filePath}");
        return lowStockItems;
    }

    string ext = Path.GetExtension(filePath).ToLower();
    if (ext is not (".xlsx" or ".xls" or ".csv"))
    {
        Console.WriteLine($"Unsupported file type: {ext}");
        return lowStockItems;
    }

    try
    {
        WorkBook workbook = WorkBook.Load(filePath);

        foreach (WorkSheet sheet in workbook.WorkSheets)
        {
            Console.WriteLine($"Checking sheet: {sheet.Name}");

            for (int row = 2; row <= sheet.RowCount; row++)
            {
                string itemName  = sheet[$"A{row}"].StringValue;
                int stockLevel   = sheet[$"B{row}"].IntValue;

                if (stockLevel < 10 && !string.IsNullOrEmpty(itemName))
                {
                    lowStockItems.Add($"{itemName} -- {stockLevel} units ({sheet.Name})");
                }
            }
        }
    }
    catch (Exception ex)
    {
        Console.WriteLine($"Error reading Excel file: {ex.Message}");
    }

    return lowStockItems;
}

// Export results to a new workbook
static void ExportReport(List<string> items, string outputPath)
{
    WorkBook report     = WorkBook.Create();
    WorkSheet sheet     = report.CreateWorkSheet("Low Stock Report");

    sheet["A1"].Value   = "Item Description";
    sheet["B1"].Value   = "Source Sheet";

    sheet["A1:B1"].Style.Font.Bold        = true;
    sheet["A1:B1"].Style.BackgroundColor  = "#4472C4";
    sheet["A1:B1"].Style.Font.Color       = "#FFFFFF";

    int rowIndex = 2;
    foreach (string item in items)
    {
        sheet[$"A{rowIndex}"].Value = item;
        rowIndex++;
    }

    report.SaveAs(outputPath);
    Console.WriteLine($"Report saved to: {outputPath}");
}

// Run
var lowStockItems = CheckLowStock("inventory.xlsx");
ExportReport(lowStockItems, "low-stock-report.xlsx");
Imports IronXL
Imports System.IO

' Validate and load the file
Private Shared Function CheckLowStock(filePath As String) As List(Of String)
    Dim lowStockItems As New List(Of String)()

    If Not File.Exists(filePath) Then
        Console.WriteLine($"File not found: {filePath}")
        Return lowStockItems
    End If

    Dim ext As String = Path.GetExtension(filePath).ToLower()
    If ext <> ".xlsx" AndAlso ext <> ".xls" AndAlso ext <> ".csv" Then
        Console.WriteLine($"Unsupported file type: {ext}")
        Return lowStockItems
    End If

    Try
        Dim workbook As WorkBook = WorkBook.Load(filePath)

        For Each sheet As WorkSheet In workbook.WorkSheets
            Console.WriteLine($"Checking sheet: {sheet.Name}")

            For row As Integer = 2 To sheet.RowCount
                Dim itemName As String = sheet($"A{row}").StringValue
                Dim stockLevel As Integer = sheet($"B{row}").IntValue

                If stockLevel < 10 AndAlso Not String.IsNullOrEmpty(itemName) Then
                    lowStockItems.Add($"{itemName} -- {stockLevel} units ({sheet.Name})")
                End If
            Next
        Next
    Catch ex As Exception
        Console.WriteLine($"Error reading Excel file: {ex.Message}")
    End Try

    Return lowStockItems
End Function

' Export results to a new workbook
Private Shared Sub ExportReport(items As List(Of String), outputPath As String)
    Dim report As WorkBook = WorkBook.Create()
    Dim sheet As WorkSheet = report.CreateWorkSheet("Low Stock Report")

    sheet("A1").Value = "Item Description"
    sheet("B1").Value = "Source Sheet"

    sheet("A1:B1").Style.Font.Bold = True
    sheet("A1:B1").Style.BackgroundColor = "#4472C4"
    sheet("A1:B1").Style.Font.Color = "#FFFFFF"

    Dim rowIndex As Integer = 2
    For Each item As String In items
        sheet($"A{rowIndex}").Value = item
        rowIndex += 1
    Next

    report.SaveAs(outputPath)
    Console.WriteLine($"Report saved to: {outputPath}")
End Sub

' Run
Dim lowStockItems As List(Of String) = CheckLowStock("inventory.xlsx")
ExportReport(lowStockItems, "low-stock-report.xlsx")
$vbLabelText   $csharpLabel

Bu örnek üst düzey ifadeleri kullanır ve tam iş akışını kapsar: dosya yolunu ve uzantısını doğrula, çalışma kitaplığını yükle, tüm çalışma sayfalarını yinele, iş mantığını uygula ve sonuçları yeni bir dosyaya yaz. Çalışma kitapları yazma ve kaydetme hakkında daha fazlası için Excel dosyası yazma kılavuzu ve Excel dışa aktarma nasıl yapılır kılavuzuna bakın.

ExportReport yöntemi, kaynak dosyayı değiştirmek yerine WorkBook.Create() ile yeni bir çalışma kitabı oluşturur. Kaynak ve çıkış dosyalarını ayrı tutmak, denetim izleri için iyi bir uygulamadır ve diğer süreçlerin bağlı olduğu verileri yanlışlıkla üzerine yazmayı önler. Bunun yerine mevcut bir çalışma kitabına veri eklemeniz gerekiyorsa, bunu WorkBook.Load() ile yükleyin, uygun çalışma sayfasına satırlar ekleyin ve SaveAs()'yi yeni bir yola kaydedin veya olduğu yerde üzerine yazın.

Geniş Excel dosyalarını verimli bir şekilde nasıl işleyebilirsiniz?

Binlerce satırlık dosyalarda, toplama fonksiyonları her hücreyi ayrı bir nesne olarak oluşturmadan dahili olarak çalıştıkları için manuel döngülerden daha iyi performans gösterir:

using IronXL;

WorkBook workbook = WorkBook.Load("large-dataset.xlsx");
WorkSheet ws      = workbook.DefaultWorkSheet;

// Fast: aggregate functions operate on the range directly
decimal total   = ws["B2:B5000"].Sum();
decimal average = ws["B2:B5000"].Avg();
int count       = ws["B2:B5000"].Count();

Console.WriteLine($"Total: {total:C}, Average: {average:C}, Rows: {count}");

// Export the worksheet to a DataSet for LINQ or database operations
var dataSet = workbook.ToDataSet();
Console.WriteLine($"DataSet tables: {dataSet.Tables.Count}");
using IronXL;

WorkBook workbook = WorkBook.Load("large-dataset.xlsx");
WorkSheet ws      = workbook.DefaultWorkSheet;

// Fast: aggregate functions operate on the range directly
decimal total   = ws["B2:B5000"].Sum();
decimal average = ws["B2:B5000"].Avg();
int count       = ws["B2:B5000"].Count();

Console.WriteLine($"Total: {total:C}, Average: {average:C}, Rows: {count}");

// Export the worksheet to a DataSet for LINQ or database operations
var dataSet = workbook.ToDataSet();
Console.WriteLine($"DataSet tables: {dataSet.Tables.Count}");
Imports IronXL

Dim workbook As WorkBook = WorkBook.Load("large-dataset.xlsx")
Dim ws As WorkSheet = workbook.DefaultWorkSheet

' Fast: aggregate functions operate on the range directly
Dim total As Decimal = ws("B2:B5000").Sum()
Dim average As Decimal = ws("B2:B5000").Avg()
Dim count As Integer = ws("B2:B5000").Count()

Console.WriteLine($"Total: {total:C}, Average: {average:C}, Rows: {count}")

' Export the worksheet to a DataSet for LINQ or database operations
Dim dataSet = workbook.ToDataSet()
Console.WriteLine($"DataSet tables: {dataSet.Tables.Count}")
$vbLabelText   $csharpLabel

Bir DataSet'a dönüştürmek, birden fazla sayfa üzerinde LINQ sorguları çalıştırmanız veya verileri ilişkisel bir veritabanına yüklemeniz gerektiğinde özellikle etkilidir. Her çalışma sayfası DataTable içinde bir DataSet olur, bu da mevcut veri-erişim koduyla çalışmayı kolaylaştırır. Excel to DataSet Guide için detaylı bilgiye bakın.

Lisans nasıl alınıp üretime nasıl dağıtılır?

IronXL, tam işlevselliği geliştirme ve test sırasında sağlayan ücretsiz deneme sürümüyle ticari bir kütüphanedir. Üretim dağıtımları için geçerli bir lisans anahtarına ihtiyaçınız olacak. Geliştirici, ekip ve kurumsal seçenekler de dahil olmak üzere lisanslama aşamaları hakkında IronXL lisans sayfasında detaylar bulunmaktadır.

Bir lisans anahtarı uygulamak için, herhangi bir IronXL çağırmadan önce ayarlayın:

IronXl.License.LicenseKey = "YOUR-LICENSE-KEY-HERE";
IronXl.License.LicenseKey = "YOUR-LICENSE-KEY-HERE";
Imports IronXl

IronXl.License.LicenseKey = "YOUR-LICENSE-KEY-HERE"
$vbLabelText   $csharpLabel

IronXL özellikleri genel bakışı dosya okuma ve yazma, grafikler oluşturma, koşullu biçimlendirme uygulama ve adlandırılmış aralıklarla çalışma dahil tüm yetenekleri özetler. Excel dosyası oluşturma kılavuzu ve hücreleri birleştirme nasıl yapılır, yeni çalışma kitapları yazma için faydalı başlangıç noktalarıdır.

C# Excel otomasyonu hakkında topluluk tartışmaları ve soruları için Microsoft Q&A forumları ve Stack Overflow iyi kaynaklardır. Resmi NuGet paket sayfası sürüm geçmişi ve indirme istatistikleri sağlar.

C# ile Excel dosyalarını açmak için önemli çıkarımlar nelerdir?

IronXL, Microsoft Office bağımlılığını tamamen kaldırır ve sunucularda, kapsayıcılarda ve bulut işlevlerinde Excel dosyalarını işlemeyi pratik hale getirir. API basit bir kalıbı takip eder: bir çalışma kitabını yükle, adı veya indeksiyle çalışma sayfalarına eriş ve hücreleri yazılmış erişiciler kullanarak oku. Sum(), Avg() ve Max() gibi toplam işlevler, manuel yineleme yükü olmadan büyük veri setlerini işler.

Kütüphane, XLSX, XLS, CSV ve TSV formatlarını destekler, .NET 10 ve tüm güncel .NET sürümlerinde çalışır ve çapraz platform uyumludur. Hata yönetimi basittir çünkü IronXL, tanıdık try/catch kalıpları ile yakalayabileceğiniz standart .NET istisnaları fırlatır -- çözümlemek için COM interop hata kodları yoktur. Mevcut tüm seçenekleri keşfetmek için IronXL belgeleri ana sayfası ile başlayın veya adım adım bir referans için çalışma kitabı açma nasıl yapılır deneyin.

IronXL ücretsiz denemesi başlat ve herhangi bir taahhütte bulunmadan kendi projelerinizde kütüphaneyi değerlendirin.

Şimdi IronXL ile başlayın.
green arrow pointer

Sıkça Sorulan Sorular

Microsoft Office olmadan VB.NET'te bir Excel dosyasını nasıl açabilirim?

IronXL kütüphanesini kullanarak Microsoft Office olmadan VB.NET'te Excel dosyalarını açabilir ve okuyabilirsiniz. IronXL, Microsoft Office veya karmaşık Interop yöntemlerine ihtiyaç duymadan Excel dosyalarıyla çalışmanın doğrudan bir yolunu sağlar.

VB.NET'te Excel işleme için IronXL kullanmanın faydaları nelerdir?

IronXL, Microsoft Office'e ihtiyaç duymayı ortadan kaldırarak ve karmaşık COM referanslarından kaçınarak VB.NET'te Excel işlemini basitleştirir. Sunucu ve bulut platformları gibi farklı ortamlar arasında uyumluluğu garanti eder ve sürüm çakışmalarını önlemeye yardımcı olur.

IronXL kullanarak hem XLSX hem de XLS dosyaları işlemek mümkün mü?

Evet, IronXL hem XLSX hem de XLS dosya formatlarının işlenmesini destekler ve bu Excel dosyalarını VB.NET uygulamalarınızda açmanıza, okumanıza ve manipüle etmenize olanak tanır.

IronXL'i kullanmak için ek bir yazılım yüklemem gerekir mi?

VB.NET'te Excel dosya işleme için IronXL'i kullanmak için ek bir yazılım gerekmez. IronXL, VB.NET projelerinize doğrudan entegre olan bağımsız bir kütüphanedir.

IronXL, bulut ortamlarında kullanılabilir mi?

Evet, IronXL bulut ortamlarında sorunsuz çalışacak şekilde tasarlanmıştır ve sunucu veya bulut platformlarında genellikle sürüm çakışmalarına neden olan geleneksel Excel Interop yöntemleriyle ilgili yaygın sorunlardan kaçınır.

IronXL, Excel dosya uyumluluğunu nasıl ele alıyor?

IronXL, XLSX ve XLS gibi birden fazla Excel dosya formatını destekleyerek ve bu dosyaları manipüle etmek ve işlemek için güçlü işlevsellik sağlayarak uyumluluğu sağlar ve Microsoft Office'e bağımlı olmadan işlem yapılabilir.

IronXL, farklı VB.NET sürümleriyle uyumlu mu?

IronXL, geliştiricilerin .NET framework'ünün farklı sürümleriyle çalışırken çok yönlü bir çözüm sunarak çeşitli VB.NET sürümleriyle uyumludur.

VB.NET'te Excel için geleneksel Interop yöntemlerini kullanmanın yaygın zorlukları nelerdir?

Geleneksel Interop yöntemleri genellikle Microsoft Office gerektirir, karmaşık COM referanslarını içerir ve sunucu veya bulut ortamlarında özellikle sürüm çakışmalarına yatkındır. IronXL, daha güvenilir ve doğrudan bir yaklaşım sunarak bu zorluklara bir çözüm sunar.

IronXL, Excel dosya manipülasyonu, örneğin düzenleme veya veri dışa aktarma için kullanılabilir mi?

Evet, IronXL, Excel dosyalarını okumanın yanı sıra veri düzenleme ve dışa aktarma işlevselliği sağlayarak, VB.NET'te Excel dosya manipülasyonu için kapsamlı bir araçtır.

IronXL'i VB.NET'te kullanmak için çalışan kod örneklerini nerede bulabilirim?

Microsoft Office olmadan Excel dosyalarını işleme konusunda adım adım rehberlik sağlayan IronXL belgelerinde ve eğitimlerinde IronXL'i VB.NET'te kullanmaya yönelik çalışan kod örneklerini bulabilirsiniz.

Jordi Bardia
Yazılım Mühendisi
Jordi Python, C# ve C++ konularında en yetkin, Iron Software'deki yeteneklerini kullanmadığı zamanlarda; oyun programlıyor. Ürün testi, ürün geliştirme ve araştırma sorumluluklarını paylaşan Jordi, sürekli ürün gelişimine büyük değer katıyor. Çeşitli deneyimleri onu ...
Daha Fazlasını Oku

Iron Destek Ekibi

Haftanın 5 günü, 24 saat çevrimiçiyiz.
Sohbet
E-posta
Beni Ara