Altbilgi içeriğine atla
IRONXL KULLANARAK

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

IronXL, Microsoft Office yüklü olmadan C#'ta Excel dosyalarını açmanızı ve okumanızı sağlar -- sadece NuGet paketini yükleyin, WorkBook.Load("file.xlsx") ile bir çalışma kitabı yükleyin ve otomatik format algılama ile herhangi bir çalışma sayfasına, hücreye veya aralığa tipli değerlerle erişin.

Microsoft Office olmadan programatik olarak Excel dosyalarını açmayı hiç denediyseniz, geleneksel Interop yaklaşımının ne kadar zor olabileceğini bilirsiniz. Interop, Excel'in kendisinin yüklenmesine bağlıdır, karmaşık COM referansları gerektirir ve genellikle sürüm çatışmalarına neden olur -- özellikle Office'in mevcut olmadığı sunucu veya bulut ortamlarında.

IronXL, XLSX, XLS, CSV ve TSV dosyalarını doğrudan okumanıza olanak tanıyan modern bir .NET kütüphanesidir ve herhangi bir Office bağımlılığı gerektirmez. Temiz, güvenilir C# kodu yazabilir, Windows, Linux veya bulutta Excel dosyalarını işleyebilir ve COM otomasyonunun tüm sürtüşmelerinden kaçabilirsiniz. Bu kılavuz, kurulumdan Excel çalışma kitaplarını açma ve okuma için üretime hazır desenlere kadar her şeyi kapsar.

.NET Projesine IronXL Nasıl Kurulur?

Başlamak yalnızca birkaç saniye alır. Projenizi açın ve aşağıdaki paket yöneticilerinden birini kullanın:

Install-Package IronXL.Excel

Alternatif olarak, Visual Studio'yu açın, projenize sağ tıklayın, "NuGet Paketlerini Yönet"'i seçin, "IronXL"'i arayın ve Kurulayın. Kurulum kılavuzu tüm desteklenen ortamları kapsar, Docker ve Azure dahil.

Visual Studio NuGet Paket Yöneticisi, IronXL.Excel paketini 2025.9.1 sürümüyle kurulum için hazır olarak gösteriyor

Kurulduktan sonra dosyanızın üst kısmına ad alanını ekleyin:

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

Bu tek satır ihtiyacınız olan her şeydir. Karmaşık COM referansları, Office bağımlılıkları ve sürüme özel derlemeler yok. Ücretsiz bir değerlendirme anahtarı için IronXL deneme lisans sayfasını ziyaret edin.

IronXL Neden Geleneksel Interop'tan Daha Kolaydır?

Geleneksel Excel Interop, kodunuzu çalıştıran her makinede Microsoft Office gerektirir. Bu, sunucu dağıtımları, AWS Lambda işlevleri ve kapsayıcılı uygulamalar için gayri pratiktir. IronXL, tüm Excel dosya ayrıştırmasını dahili olarak yönetir ve herhangi bir dış bağımlılık olmadan çalışan temiz bir API sunar.

Interop ile aynı zamanda, bellek sızıntılarını önlemek için COM nesnesi ömrünü dikkatlice yönetmeniz gerekir -- her Application, Workbook ve Worksheet nesnesi açıkça serbest bırakılmalıdır, aksi takdirde arka planda Excel işlemleri birikir. IronXL, standart .NET çöp topla işlevselliğini kullanır, bu yüzden hiçbir zaman COM temizliği hakkında düşünmenize gerek yok.

Kütüphane .NET Framework 4.6.2 ve üzerini, ayrıca .NET 5, 6, 7, 8 ve 10'u destekler. Herhangi bir değişiklik yapmadan Windows, macOS ve Linux üzerinde çalışır. Çoklu platform senaryolarını hedefliyorsanız, bu tek başına IronXL'i, yalnızca Windows üzerinde çalışan Office Interop'tan daha iyi bir seçim haline getirir.

Kurulumu Çalıştığını Nasıl Doğrularsınız?

Kurulumdan sonra, herhangi bir Excel dosyasını yükleyip bir hücre değerini yazdırarak basit bir test oluşturun. Proje hatasız olarak derleniyor ve çıktı beklendiği gibi görünüyorsa, kurulum tamamlanmıştır. IronXL belgeleri bu doğrulama adımını detaylı bir şekilde ele alan hızlı başlangıç bölümünü içerir.

Kurulum sırasında yapılan yaygın bir hata, çalışma kitabını prodüksiyonda yüklemeden önce bir lisans anahtarı uygulamayı unutmakdır. Deneim modunda, kütüphane oluşturulan dosyalara küçük bir filigran ekler. Tüm işlemler baştan doğru lisans altında çalışsın diye uygulama başlatıldığında IronXL.License.LicenseKey ayarlayın.

Bir Excel Çalışma Kitabını Nasıl Açarsınız ve Hücre Değerlerini Nasıl Okursunuz?

Temel API basittir. Bir çalışma kitabı yükleyin, bir çalışma sayfası seçin ve hücrelere adresle veya iterasyonla erişin.

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 olup olmadığını belirtmenize gerek yoktur. Çalışma sayfalarına workbook.GetWorkSheet("Sheet1") kullanarak indeks veya isim ile erişin. Her hücre, IntValue, DecimalValue, DateTimeValue ve Text gibi tipli özellikler sunar.

Dosya açma üzerine daha fazla seçenek için, açık çalışma kitabı kullanma kılavuzuna bakın.

Ekran ikiye bölünmüş durumda, sol tarafta sipariş verileri ile bir Excel tablosu ve sağda Visual Studio hata ayıklama konsolu ile çıkarılan verileri gösteriyor

Çalışma Sayfalarına İsimle Nasıl Erişirsiniz?

Çalışma sayfası adlarını kullanmak, özellikle başkaları tarafından düzenlendiğinde, sayısal indekslerden daha sürdürülebilir. Aşağıdaki örnek, bir sayfayı isme göre nasıl arayacağınızı ve tüm sayfaları üzerinde nasıl yineleme yapacağınızı 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 dosyası okuma kılavuzu, dinamik olarak üretilmiş sayfa adlarına sahip çalışma kitapları ile çalışma dahil, ek çalışma sayfası erişim desenlerini açıklar.

Excel Hücrelerinden Farklı Veri Türlerini Nasıl Okursunuz?

IronXL, her yaygın Excel veri türü için ataçlı erişimler sağlar. Stringleri, tam sayıları, ondalık sayıları, tarihleri, booleans ve formül sonuçlarını manuel ayrıştırmaya gerek kalmadan 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

Aşağıdaki tablo mevcut ataçlı erişimleri özetler:

Veri türüne göre IronXL hücre değeri ataçları
Ataç Dönüş Türü Açıklamalar
StringValue string Her zaman string döndürür, sayısal hücreler için bile
IntValue int Ondalık değerleri keser
DecimalValue decimal Finansal veriler için en iyi seçim
DoubleValue double Bilimsel veya kayan noktalı değerler için
DateTimeValue DateTime Excel seri tarih numaralarını otomatik olarak ayrıştırır
BoolValue bool TRUE/FALSE hücrelerini okur
Formül string Formül metnini döndürür, örn. =SUM(A2:D2)

Hücre verilerini okuma ve yazma hakkında tam detaylar için hücre biçimlendirme kılavuzu ve veri ithalatı nasıl yapılır kısmına bakın.

Excel tablosu ürün envanter verilerini gösteriyor, Ürün, Miktar, Fiyat ve Son Güncellenme sütunları ve aynı verileri C# kullanarak programatik olarak okunan Visual Studio Hata Ayıklama Konsolu ile yan yana

Boş veya Null Hücreleri Güvenle Nasıl Yönetirsiniz?

Gerçek dünya Excel dosyalarında boş hücreler yaygındır. Veriyi okumadan önce IsEmpty özelliğini veya Value için null 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ı okuma belgeleri seyrek verileri yönetmek, bir çalışma sayfasındaki en son kullanılan satırı ve sütunu tespit etme gibi ek desenleri kapsar.

Boş hücrelerle uğraşırken dikkate alınması gereken diğer bir husus, gerçekten boş bir hücre ile boş bir string içeren bir hücre arasındaki farktır. IsEmpty hücre tamamen boş olduğunda doğru döner, oysa StringValue boş hücreler ve "" olarak açıkça ayarlanan hücreler için boş bir dize döner. Verileriniz boş görünen metin olarak biçimlendirilmiş hücreler içeriyorsa, en doğru sonuç için hem IsEmpty hem de string.IsNullOrWhiteSpace(cell.StringValue) kontrol edin.

Üretime Hazır Excel Okuyucu Nasıl Oluşturursunuz?

Gerçek dünya Excel okuyucusu, dosya doğrulama, hata işleme, çok sayfalı destek ve isteğe bağlı çıktı üretimi gerektirir. Aşağıdaki örnek, bu modellerin tümünü 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, en üst düzey ifadeleri kullanır ve tam iş akışını kapsar: dosya yolunu ve uzantısını doğrulayın, çalışma kitabını yükleyin, tüm çalışma sayfalarını yineleyin, iş mantığını uygulayın ve sonuçları yeni bir dosyaya yazın. Çalışma kitaplarının yazılması ve kaydedilmesi hakkında daha fazla bilgi için Excel dosyası yazma kılavuzu ve Excel nasıl dışa aktarılır rehberine bakın.

Dikkat edin ki ExportReport yöntemi WorkBook.Create() ile yeni bir çalışma kitabı oluşturur, kaynak dosyayı değiştirmez. Kaynak ve çıktı dosyalarını ayrı tutmak, denetim izleri için iyi bir uygulamadır ve diğer işlemlerin bağlı olduğu verileri yanlışlıkla üzerine yazmaktan kaçınır. Bunun yerine mevcut bir çalışma kitabına veri eklemeniz gerekiyorsa, WorkBook.Load() ile yükleyin, ilgili çalışma sayfasına satırlar ekleyin ve SaveAs() yeni bir yola veya yerinde üzerine yazın.

Büyük Excel Dosyalarını Verimli Bir Şekilde Nasıl İstiyorsunuz?

Binlerce satır içeren dosyalar için toplama fonksiyonları, her hücreyi ayrı bir nesne olarak materyalize etmeden 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

DataSet'a dönüştürmek, özellikle birden fazla sayfada LINQ sorguları çalıştırmanız veya ilişkisel bir veritabanına veri yüklemeniz gerektiğinde etkilidir. Her çalışma sayfası, DataSet içinde DataTable olur ve mevcut veri erişim kodu ile çalışmayı kolaylaştırır. Excel to DataSet rehberine tam ayrıntılar için bakın.

Bir Lisansı Nasıl Alabilir ve Üretime Dağıtabilirsiniz?

IronXL, geliştirme ve test süresince tam işlevsellik sağlayan ücretsiz bir deneme sunan ticari bir kütüphanedir. Üretim dağıtımları için geçerli bir lisans anahtarına ihtiyacınız olacak. Geliştirici, ekip ve kurumsal seçenekler dahil olmak üzere lisanslama katmanlarının ayrıntıları IronXL lisanslama sayfasında mevcuttur.

Bir lisans anahtarını uygulamak için, herhangi bir IronXL çağrısından ö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 özellikler özeti dosya okuma ve yazmadan grafik oluşturma, koşullu biçimlendirmeyi uygulama ve adlandırılmış aralıklarla çalışma gibi tüm yetenekleri özetler. Excel dosyası oluşturma kılavuzunu ve hücreleri birleştirme rehberini yeni çalışma kitapları yazmak için başlangıç ​​noktası olarak kullanabilirsiniz.

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

C#'da Excel Dosyalarını Açmanın Ana Noktaları Nelerdir?

IronXL tamamen Microsoft Office bağımlılığını kaldırır, bu da Excel dosyalarını sunucularda, konteynerlerde ve bulut fonksiyonlarında işlemeyi pratik hale getirir. API basit bir modeli takip eder: bir çalışma kitabını yükleyin, ad veya indeksle erişin ve hücreleri yazı türüne göre okuyun. Sum(), Avg() ve Max() gibi toplam fonksiyonlar, manuel yöntemlerin getirdiği 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 son .NET sürümlerinde çalışır ve çapraz platform uyumluluğuna sahiptir. Hata yönetimi basittir çünkü IronXL, tanıdık try/catch patternleri ile yakalayabileceğiniz standart .NET istisnaları fırlatır -- açıklamanız gereken COM interop hata kodları yoktur. Mevcut tüm seçenekleri keşfetmek için, IronXL belgeleri ana sayfasıyla başlayın veya adım adım referans için çalışma kitabı nasıl açılır kılavuzunu deneyin.

Ücretsiz IronXL denemesi başlatın ve 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 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ı ile çalışmanın basit bir yolunu sağlar.

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

IronXL, Microsoft Office gereksinimini ortadan kaldırarak ve karmaşık COM referanslarından kaçınarak VB.NET'te Excel işlemesini basitleştirir. Sunucular ve bulut platformları gibi farklı ortamlarda uyumluluk sağlar ve sürüm uyumsuzluklarını önlemeye yardımcı olur.

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

Evet, IronXL, hem XLSX hem de XLS dosya formatlarını işleme desteği sunar, böylece bu Excel dosyalarını VB.NET uygulamalarınızda açabilir, okuyabilir ve manipüle edebilirsiniz.

IronXL kullanmak için ek bir yazılım yüklemem gerekiyor mu?

VB.NET'te Excel dosyası işleme için IronXL kullanmak adına ek bir yazılım gerekmiyor. 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 sıklıkla sürüm uyuşmazlıklarıyla karşılaşan geleneksel Excel Interop yöntemlerinin yaygın sorunlarını önler.

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

IronXL, XLSX ve XLS gibi birden çok Excel dosya formatını destekleyerek uyumluluğu garanti eder ve Microsoft Office olmadan bu dosyaları manipüle ve işleme yeteneği sunar.

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

IronXL, çeşitli VB.NET sürümleriyle uyumludur ve .NET framework'ün farklı sürümleri ile çalışan geliştiriciler için esnek bir çözüm sunar.

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

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

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

Evet, IronXL, Excel dosyalarını okuma işlevselliği sağlamanın yanı sıra, veri düzenleme ve ihraç etme için de olanak sunar ve VB.NET'te Excel dosyası manipülasyonu için kapsamlı bir araç oluşturur.

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

VB.NET'te IronXL kullanarak çalışan kod örneklerini, IronXL belgelerinde ve Microsoft Office'e ihtiyaç duymadan Excel dosyalarını işlemede adım adım kılavuzlar içeren eğitmenlerde bulabilirsiniz.

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ı...

Daha Fazla Oku

Iron Destek Ekibi

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