Altbilgi içeriğine atla
IRONXL KULLANARAK

C# ile IronXL Kullanarak Excel Dosyalarını Nasıl Açarsınız

C# ile Excel dosyalarını açmak ve üzerinde çalışmak, neredeyse her .NET geliştiricisinin eninde sonunda karşılaştığı bir durumdur. İster haftalık raporları otomatikleştiriyor olun, ister veri aktarımlarını işliyor olun, ister anında elektronik tablo üreten araçlar oluşturuyor olun, seçeceğiniz kütüphane hız, güvenilirlik ve dağıtım esnekliği açısından önemli bir fark yaratabilir.

Bu öğretici, C#'da IronXL kullanarak Excel dosyalarını nasıl açacağınızı gösterir. Bu, Microsoft Office kurulumu gerektirmeden çalışma kitaplarını okuyan, düzenleyen ve yazan hafif bir Excel kütüphanesidir. C# uygulamanizin icinde verileri yuklemenin, calisma sayfalarina erismenin ve hucrelerle programatik olarak calismanin ne kadar basit oldugunu goreceksiniz.

Neden Microsoft.Office.Interop.Excel Yerine IronXL'yi Tercih Etmelisiniz?

Microsoft.Office.Interop.Excel, Excel otomasyonu için geleneksel yaklaşım olmasına rağmen, önemli sınırlamalarıyla birlikte gelir ve bu da IronXL'yi modern uygulamalar için daha iyi bir seçim haline getirir. Microsoft, Office Interop'un sunucularda kullanılmasına karşı tavsiyede bulunmaktadır ve bunun nedenleri olarak kararsızlık, ölçeklenebilirlik sorunları ve desteklenmeyen dağıtım senaryolarını göstermektedir.

IronXL vs Microsoft.Office.Interop.Excel özellik karşılaştırması
Özellik IronXL Microsoft.Office.Interop.Excel
Excel Kurulumu Gereklidir Hayır Evet
Platformlar Arası Destek Windows, Linux, macOS Sadece Windows
Sunucu Dağıtımı Tam destekli Microsoft tarafından önerilmez
Bellek Yönetimi Otomatik Manuel COM temizleme gerektirir
API Karmaşıklığı Basit ve sezgisel Karmaşık COM arayüzleri
Dosya Formatı Desteği XLS, XLSX, CSV, TSV, JSON Sadece Excel formatlarıyla sınırlı
Thread Güvenliği Destekli Sadece tek iş parçacıklı

IronXL, Microsoft Excel'e olan bağımlılığı ortadan kaldırır ve bu da onu sunucu ortamları, Docker konteynerleri ve Azure gibi bulut platformları için ideal hale getirir. Kütüphane, COM nesneleri veya manuel bellek yönetimiyle uğraşma gereğini ortadan kaldıran temiz, modern bir API sunar. Dosyaları açmanın ötesinde, IronXL her şeyi yönetir: formül değerlendirmesi, grafik oluşturma ve hücre stillendirmesi.

Bir .NET Projesine IronXL Nasıl Kurulur?

IronXL ile başlamak kolaydır -- NuGet Paket Yöneticisi aracılığıyla projenize dakikalar içinde eklenebilir. Visual Studio'da Paket Yöneticisi Konsolunu açın ve çalıştırın:

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

Her iki komut da aynı paketi yükler. Ilkini Visual Studio Package Manager Konsolunda ve ikincisini .NET CLI ile kullanin. Kurulumdan sonra, @--CODE-0--@ altinda projeniz dosyasinda paket referansinin gorunur oldugunu dogrulayabilirsiniz.

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

IronXL Hangi .NET Sürümlerini Destekler?

IronXL, .NET 10, .NET 8, .NET 6, .NET Framework 4.6.2 ve üstü, ve .NET Standard 2.0 dahil olmak üzere modern .NET sürümlerinin tüm yelpazesini hedefler. Bu geniş destek, yeni projelerde .NET 10'u hedefleyen IronXL'yi kullanabileceğiniz anlamına gelir ve aynı zamanda geleneksel .NET Framework üzerinde çalışan eski uygulamalarda da kullanabilirsiniz.

Kutuphaneye, hedef cercevenize uygun olan dogru binary dosyasini otomatik olarak secen tek bir NuGet paketi olarak ulasilabilir. Ekstra bağımlılıklar yok, platforma özgü kurulumlar yok ve Excel lisansı gerekmez. IronXL uyumluluk rehberini ziyaret ederek desteklenen çalışma zamanları ve platformların tam listesini görebilirsiniz.

Mevcut bir Excel Dosyasını C# ile Nasıl Açarsınız ve Okursunuz?

IronXL ile mevcut Excel dosyalarını açmak sadece birkaç satır kod gerektirir. Kutuphanemiz, XLS ve XLSX dosyalarını okuma, ayni zamanda CSV ve TSV formatlarını da birlesik bir API aracılığıyla destekler. Aşağıdaki örnek, temel iş akışını göstermektedir:

// Load an existing Excel file
WorkBook workbook = WorkBook.Load("sales-data.xlsx");

// Access the first worksheet by index
WorkSheet sheet = workbook.WorkSheets[0];

// Or access a worksheet by name
WorkSheet namedSheet = workbook.GetWorkSheet("January Sales");

// Read a specific cell value
string cellValue = sheet["A1"].StringValue;
Console.WriteLine($"Cell A1 contains: {cellValue}");

// Read a numeric value
decimal revenue = sheet["B2"].DecimalValue;
Console.WriteLine($"Revenue: {revenue:C}");

// Check cell data type before reading
var cell = sheet["C3"];
Console.WriteLine($"Type: {cell.Type}, Value: {cell.Value}");
// Load an existing Excel file
WorkBook workbook = WorkBook.Load("sales-data.xlsx");

// Access the first worksheet by index
WorkSheet sheet = workbook.WorkSheets[0];

// Or access a worksheet by name
WorkSheet namedSheet = workbook.GetWorkSheet("January Sales");

// Read a specific cell value
string cellValue = sheet["A1"].StringValue;
Console.WriteLine($"Cell A1 contains: {cellValue}");

// Read a numeric value
decimal revenue = sheet["B2"].DecimalValue;
Console.WriteLine($"Revenue: {revenue:C}");

// Check cell data type before reading
var cell = sheet["C3"];
Console.WriteLine($"Type: {cell.Type}, Value: {cell.Value}");
' Load an existing Excel file
Dim workbook As WorkBook = WorkBook.Load("sales-data.xlsx")

' Access the first worksheet by index
Dim sheet As WorkSheet = workbook.WorkSheets(0)

' Or access a worksheet by name
Dim namedSheet As WorkSheet = workbook.GetWorkSheet("January Sales")

' Read a specific cell value
Dim cellValue As String = sheet("A1").StringValue
Console.WriteLine($"Cell A1 contains: {cellValue}")

' Read a numeric value
Dim revenue As Decimal = sheet("B2").DecimalValue
Console.WriteLine($"Revenue: {revenue:C}")

' Check cell data type before reading
Dim cell = sheet("C3")
Console.WriteLine($"Type: {cell.Type}, Value: {cell.Value}")
$vbLabelText   $csharpLabel

WorkBook.Load() metodu, XLS, XLSX, CSV veya TSV dosya formatini otomatik olarak algilar ve ek bir ayara gerek olmaksizin cozumler. workbook.WorkSheets[0] kullanarak indeksle veya GetWorkSheet() kullanarak isimle calisma sayfalarina erisirsiniz. Bireysel hucre degerleri, brackets notasyonu (sheet["A1"]) aracılığıyla okunabilir, bu da kodu özgün ve etkili kilar. Desteklenen dosya turlerinin tam listesi icin Open XML SDK SpreadsheetML belgelerini ve IronXL NuGet paketi sayfasini gorun.

Tipli erişim icin, IronXL, .StringValue, .DecimalValue, .IntValue, .BoolValue ve .DateTimeValue gibi özellikleri hucreler uzerinde dogrudan aciga cikarir. Bu, genel nesne tabanlı API'lerle yaygın olan tür tahminini ortadan kaldırır. Daha karmaşık senaryolar için Excel aralıklarıyla çalışma kılavuzunu ve hücre veri formatları dokümantasyonunu ziyaret edin.

Çıktı

IronXL kullanarak C#'da Excel Dosyalari Nasıl Acilir: Sekil 1 - Örnek bir Excel dosyasini açma ve okuma

Bir Akıştan veya Bayt Dizisinden Excel Dosyalarını Nasıl Yüklersiniz?

Web uygulamalarında ve bulut işlevlerinde, dosya verilerini genellikle bir dosya yolu yerine akış veya byte dizisi olarak alırsınız. IronXL her iki durumu da işler:

// Load from a byte array (e.g., from a database or HTTP response)
byte[] fileBytes = File.ReadAllBytes("sales-data.xlsx");
WorkBook workbookFromBytes = WorkBook.Load(fileBytes);

// Load from a MemoryStream
using var memStream = new MemoryStream(fileBytes);
WorkBook workbookFromStream = WorkBook.Load(memStream);

// Access data the same way regardless of source
WorkSheet sheet = workbookFromStream.DefaultWorkSheet;
Console.WriteLine(sheet["A1"].StringValue);
// Load from a byte array (e.g., from a database or HTTP response)
byte[] fileBytes = File.ReadAllBytes("sales-data.xlsx");
WorkBook workbookFromBytes = WorkBook.Load(fileBytes);

// Load from a MemoryStream
using var memStream = new MemoryStream(fileBytes);
WorkBook workbookFromStream = WorkBook.Load(memStream);

// Access data the same way regardless of source
WorkSheet sheet = workbookFromStream.DefaultWorkSheet;
Console.WriteLine(sheet["A1"].StringValue);
Imports System
Imports System.IO

' Load from a byte array (e.g., from a database or HTTP response)
Dim fileBytes As Byte() = File.ReadAllBytes("sales-data.xlsx")
Dim workbookFromBytes As WorkBook = WorkBook.Load(fileBytes)

' Load from a MemoryStream
Using memStream As New MemoryStream(fileBytes)
    Dim workbookFromStream As WorkBook = WorkBook.Load(memStream)

    ' Access data the same way regardless of source
    Dim sheet As WorkSheet = workbookFromStream.DefaultWorkSheet
    Console.WriteLine(sheet("A1").StringValue)
End Using
$vbLabelText   $csharpLabel

Akis tabanli yukleme, bir IFormFile yuklemesi aldığınız ASP.NET Core kontrolcülerinde özellikle faydaludur. formFile.OpenReadStream() cagirin ve sonucu WorkBook.Load()'e iletin. ASP.NET Core entegrasyon desenlerinin tamamı için ASP.NET Core Excel öğreticisine bakın.

C# ile Yeni Excel Çalışma Kitapları Nasıl Oluşturulur?

IronXL'in elektronik tablo oluşturma yetenekleri ile yeni Excel dosyaları oluşturmak da aynı derecede basittir. Aşağıdaki örnek, biçimlendirilmiş bir üç aylık rapor oluşturur:

// Create a new workbook in XLSX format
WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX);

// Add metadata
workbook.Metadata.Author = "Sales Department";
workbook.Metadata.Title = "Q1 Revenue Report";

// Create a named worksheet
WorkSheet sheet = workbook.CreateWorkSheet("Q1 Report");

// Add header row
sheet["A1"].Value = "Product";
sheet["B1"].Value = "Units Sold";
sheet["C1"].Value = "Revenue";

// Add data rows
sheet["A2"].Value = "Software Licenses";
sheet["B2"].Value = 120;
sheet["C2"].Value = 45000;

sheet["A3"].Value = "Support Contracts";
sheet["B3"].Value = 55;
sheet["C3"].Value = 27500;

// Add a SUM formula
sheet["C4"].Formula = "=SUM(C2:C3)";

// Apply number formatting
sheet["C2:C4"].FormatString = "$#,##0.00";

// Save the workbook to disk
workbook.SaveAs("quarterly-report.xlsx");
Console.WriteLine("Workbook saved successfully.");
// Create a new workbook in XLSX format
WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX);

// Add metadata
workbook.Metadata.Author = "Sales Department";
workbook.Metadata.Title = "Q1 Revenue Report";

// Create a named worksheet
WorkSheet sheet = workbook.CreateWorkSheet("Q1 Report");

// Add header row
sheet["A1"].Value = "Product";
sheet["B1"].Value = "Units Sold";
sheet["C1"].Value = "Revenue";

// Add data rows
sheet["A2"].Value = "Software Licenses";
sheet["B2"].Value = 120;
sheet["C2"].Value = 45000;

sheet["A3"].Value = "Support Contracts";
sheet["B3"].Value = 55;
sheet["C3"].Value = 27500;

// Add a SUM formula
sheet["C4"].Formula = "=SUM(C2:C3)";

// Apply number formatting
sheet["C2:C4"].FormatString = "$#,##0.00";

// Save the workbook to disk
workbook.SaveAs("quarterly-report.xlsx");
Console.WriteLine("Workbook saved successfully.");
' Create a new workbook in XLSX format
Dim workbook As WorkBook = WorkBook.Create(ExcelFileFormat.XLSX)

' Add metadata
workbook.Metadata.Author = "Sales Department"
workbook.Metadata.Title = "Q1 Revenue Report"

' Create a named worksheet
Dim sheet As WorkSheet = workbook.CreateWorkSheet("Q1 Report")

' Add header row
sheet("A1").Value = "Product"
sheet("B1").Value = "Units Sold"
sheet("C1").Value = "Revenue"

' Add data rows
sheet("A2").Value = "Software Licenses"
sheet("B2").Value = 120
sheet("C2").Value = 45000

sheet("A3").Value = "Support Contracts"
sheet("B3").Value = 55
sheet("C3").Value = 27500

' Add a SUM formula
sheet("C4").Formula = "=SUM(C2:C3)"

' Apply number formatting
sheet("C2:C4").FormatString = "$#,##0.00"

' Save the workbook to disk
workbook.SaveAs("quarterly-report.xlsx")
Console.WriteLine("Workbook saved successfully.")
$vbLabelText   $csharpLabel

WorkBook.Create() metodu, belirtilen formatta yeni bir calisma kitabi başlatir. CreateWorkSheet() kullanarak birden fazla calisma sayfasi ekleyebilir, stringler, sayilar, booleanlar ve tarihler gibi çeşitli veri turleriyle hucreleri doldurabilir ve Formula ozelligi aracılığiyla Excel formullerini uygulayabilirsiniz. Kutuphanesi, veri tipi donusumunu ve Excel'e ozgu format gereksinimlerini otomatik olarak yonetir.

Basliklari bicimlendirmek ve kenarliklar eklemek icin, hucre bicimlendirme API'sini kullanin. Şablon tabanlı rapor oluşturma için, mevcut Excel şablonlarından dışa aktarma kılavuzuna bakınız: export from existing Excel templates guide.

Çıktı

IronXL kullanarak C#'da Excel Dosyalari Nasıl Acilir: Sekil 2 - Yeni Excel calisma kitaplari oluşturma

Excel Çalışma Sayfası Verilerini Toplu Olarak Nasıl Okur ve İşlersiniz?

IronXL, aralık tabanlı işlemler ve DataTable dönüşümü aracılığıyla veri çıkarma ve toplu işleme işlemlerini verimli bir şekilde yürütür:

// Load a workbook and select the default sheet
WorkBook workbook = WorkBook.Load("inventory.xlsx");
WorkSheet sheet = workbook.DefaultWorkSheet;

// Read a rectangular range of cells
var range = sheet["A1:D10"];
foreach (var cell in range)
{
    Console.WriteLine($"{cell.AddressString}: {cell.Text}");
}

// Convert the worksheet to a DataTable for database integration
System.Data.DataTable dataTable = sheet.ToDataTable(useFirstRowAsColumnHeaders: true);
Console.WriteLine($"Rows: {dataTable.Rows.Count}, Columns: {dataTable.Columns.Count}");

// Use aggregate functions directly on a range
decimal total = sheet["C2:C10"].Sum();
decimal average = sheet["C2:C10"].Avg();
decimal maxValue = sheet["C2:C10"].Max();

Console.WriteLine($"Total: {total:C}");
Console.WriteLine($"Average: {average:C}");
Console.WriteLine($"Max: {maxValue:C}");

// Filter and find rows using LINQ on the DataTable
var highValue = dataTable.AsEnumerable()
    .Where(row => row.Field<decimal>("Revenue") > 10000)
    .ToList();
Console.WriteLine($"High-value rows: {highValue.Count}");
// Load a workbook and select the default sheet
WorkBook workbook = WorkBook.Load("inventory.xlsx");
WorkSheet sheet = workbook.DefaultWorkSheet;

// Read a rectangular range of cells
var range = sheet["A1:D10"];
foreach (var cell in range)
{
    Console.WriteLine($"{cell.AddressString}: {cell.Text}");
}

// Convert the worksheet to a DataTable for database integration
System.Data.DataTable dataTable = sheet.ToDataTable(useFirstRowAsColumnHeaders: true);
Console.WriteLine($"Rows: {dataTable.Rows.Count}, Columns: {dataTable.Columns.Count}");

// Use aggregate functions directly on a range
decimal total = sheet["C2:C10"].Sum();
decimal average = sheet["C2:C10"].Avg();
decimal maxValue = sheet["C2:C10"].Max();

Console.WriteLine($"Total: {total:C}");
Console.WriteLine($"Average: {average:C}");
Console.WriteLine($"Max: {maxValue:C}");

// Filter and find rows using LINQ on the DataTable
var highValue = dataTable.AsEnumerable()
    .Where(row => row.Field<decimal>("Revenue") > 10000)
    .ToList();
Console.WriteLine($"High-value rows: {highValue.Count}");
Imports System
Imports System.Data
Imports System.Linq

' Load a workbook and select the default sheet
Dim workbook As WorkBook = WorkBook.Load("inventory.xlsx")
Dim sheet As WorkSheet = workbook.DefaultWorkSheet

' Read a rectangular range of cells
Dim range = sheet("A1:D10")
For Each cell In range
    Console.WriteLine($"{cell.AddressString}: {cell.Text}")
Next

' Convert the worksheet to a DataTable for database integration
Dim dataTable As DataTable = sheet.ToDataTable(useFirstRowAsColumnHeaders:=True)
Console.WriteLine($"Rows: {dataTable.Rows.Count}, Columns: {dataTable.Columns.Count}")

' Use aggregate functions directly on a range
Dim total As Decimal = sheet("C2:C10").Sum()
Dim average As Decimal = sheet("C2:C10").Avg()
Dim maxValue As Decimal = sheet("C2:C10").Max()

Console.WriteLine($"Total: {total:C}")
Console.WriteLine($"Average: {average:C}")
Console.WriteLine($"Max: {maxValue:C}")

' Filter and find rows using LINQ on the DataTable
Dim highValue = dataTable.AsEnumerable() _
    .Where(Function(row) row.Field(Of Decimal)("Revenue") > 10000) _
    .ToList()
Console.WriteLine($"High-value rows: {highValue.Count}")
$vbLabelText   $csharpLabel

Aralik secim söz dizimi (sheet["A1:D10"]), birden fazla hucre ile ayni anda calismanin estetik bir yolunu saglar. ToDataTable() metodu, calisma sayfasi verilerini Entity Framework, veri baglama kontrolleri ve SQL toplu kopyalama işlemleri ile dogrudan entegre olan bir System.Data.DataTable'e dönüştürur. IronXL, toplamsal fonksiyonlari -- Sum(), Avg(), Max() ve Min() -- dogrudan araliklarda destekler, manuel iterasyon kodu yazma ihtiyaçını ortadan kaldirir.

Çok buyuk veri kumesini verimli bir sekilde yonetmek icin, akitma ve parcali işleme desenleri icin tam IronXL API referansina basvurun.

IronXL kullanarak C#'da Excel Dosyalari Nasıl Acilir: Sekil 3 - Islenmis Excel veri ciktisi

Bir Çalışma Sayfasında Hücrelerde Nasıl Filtreleme ve Arama Yapabilirsiniz?

Aralık tabanlı erişimin ötesinde, IronXL hücreleri değere göre aramanıza, koşullu mantık uygulamanıza ve programatik olarak satır ve sütunları yinelemenize olanak tanır:

WorkBook workbook = WorkBook.Load("products.xlsx");
WorkSheet sheet = workbook.DefaultWorkSheet;

// Get total row and column counts
int rowCount = sheet.RowCount;
int colCount = sheet.ColumnCount;

Console.WriteLine($"Sheet dimensions: {rowCount} rows x {colCount} columns");

// Iterate over all rows and columns
for (int row = 1; row <= rowCount; row++)
{
    for (int col = 1; col <= colCount; col++)
    {
        var cell = sheet.GetCellAt(row, col);
        if (cell != null && !string.IsNullOrEmpty(cell.Text))
        {
            Console.WriteLine($"[{row},{col}] = {cell.Text}");
        }
    }
}

// Find the first cell containing specific text
var searchResult = sheet["A1:Z100"]
    .FirstOrDefault(c => c.StringValue.Contains("discontinued", StringComparison.OrdinalIgnoreCase));

if (searchResult != null)
{
    Console.WriteLine($"Found 'discontinued' at: {searchResult.AddressString}");
}
WorkBook workbook = WorkBook.Load("products.xlsx");
WorkSheet sheet = workbook.DefaultWorkSheet;

// Get total row and column counts
int rowCount = sheet.RowCount;
int colCount = sheet.ColumnCount;

Console.WriteLine($"Sheet dimensions: {rowCount} rows x {colCount} columns");

// Iterate over all rows and columns
for (int row = 1; row <= rowCount; row++)
{
    for (int col = 1; col <= colCount; col++)
    {
        var cell = sheet.GetCellAt(row, col);
        if (cell != null && !string.IsNullOrEmpty(cell.Text))
        {
            Console.WriteLine($"[{row},{col}] = {cell.Text}");
        }
    }
}

// Find the first cell containing specific text
var searchResult = sheet["A1:Z100"]
    .FirstOrDefault(c => c.StringValue.Contains("discontinued", StringComparison.OrdinalIgnoreCase));

if (searchResult != null)
{
    Console.WriteLine($"Found 'discontinued' at: {searchResult.AddressString}");
}
Imports System
Imports System.Linq

Dim workbook As WorkBook = WorkBook.Load("products.xlsx")
Dim sheet As WorkSheet = workbook.DefaultWorkSheet

' Get total row and column counts
Dim rowCount As Integer = sheet.RowCount
Dim colCount As Integer = sheet.ColumnCount

Console.WriteLine($"Sheet dimensions: {rowCount} rows x {colCount} columns")

' Iterate over all rows and columns
For row As Integer = 1 To rowCount
    For col As Integer = 1 To colCount
        Dim cell = sheet.GetCellAt(row, col)
        If cell IsNot Nothing AndAlso Not String.IsNullOrEmpty(cell.Text) Then
            Console.WriteLine($"[{row},{col}] = {cell.Text}")
        End If
    Next
Next

' Find the first cell containing specific text
Dim searchResult = sheet("A1:Z100") _
    .FirstOrDefault(Function(c) c.StringValue.Contains("discontinued", StringComparison.OrdinalIgnoreCase))

If searchResult IsNot Nothing Then
    Console.WriteLine($"Found 'discontinued' at: {searchResult.AddressString}")
End If
$vbLabelText   $csharpLabel

Bu desen, yüklenen bir dosyayı belirli değerler için tarayıp daha sonra işlemeye devam etmeniz gereken veri doğrulama iş akışlarında yaygındır. Gelişmiş filtreleme kullanım durumları için, Excel aralık seçim dokümantasyonu'nu inceleyin.

Bu Yaklaşım Hangi Dağıtım Senaryolarını Destekler?

IronXL kullanmanın en pratik avantajlarından biri, sistemde herhangi bir yere Microsoft Office kurulmadan çalışabilme yeteneğidir. Bu, Interop tabanlı çözümlerin basitçe eşleşemediği dağıtım esnekliği oluşturur:

Bulut ve Konteyner Dağıtımı

IronXL, Azure App Service, AWS Lambda ve Google Cloud Run üzerinde herhangi bir özel yapılandırma gerektirmeden çalışır. Herhangi bir Office bağımlılığı taşımadığı için, Office'i bir konteyner imajına dahil etmenin hem lisanslama maliyetinden hem de karmaşıklığından kaçınırsınız. IronXL kullanan bir .NET 10 uygulaması için minimal bir Dockerfile, yalnızca standart .NET çalışma zamanı görüntüsüne ihtiyaç duyar.

Docker tabanlı dağıtım da aynı derecede basittir. IronXL Docker rehberi Debian, Alpine ve Windows konteyner yapılandırmalarını kapsar. Tüm durumlarda, IronXL'i NuGet araciligiyla yuklersiniz ve ek sistem paketleri olmadan calisir.

Sunucu ve CI/CD Pipeline Kullanımı

Sunucu ortamları genellikle bir GUI'den yoksundur ve bir Windows masaüstü oturumuna bağlı uygulamaları çalıştıramaz. IronXL, tamamen başsız modda çalışır, bu da onu aşağıdakiler için uygun hale getirir:

  • Zamanlanmış arka plan görevlerinde Excel raporları oluşturma
  • ASP.NET Core API'lerinde yüklenen hesap tablolarını işleme
  • Verileri otomatik boru hatlarında DataTable veya veritabanı sorgu sonuçlarını XLSX olarak dışa aktarma
  • CI/CD test çalışmaları sırasında içe aktarılan veri dosyalarını doğrulama

Üst düzeyde, ASP.NET Core için özel olarak, dosya akışı, yanıt başlıkları ve uygun atma düzenlerini kapsayan ASP.NET Core Excel dışa aktarma rehberine bakınız.

Çapraz Platform Geliştirme

IronXL, .NET Standard 2.0'ı hedefler ve Linux ve macOS'ta doğal olarak çalışır, çapraz platform geliştirme iş akışlarını destekler. macOS üzerinde çalışan geliştiriciler, aynı ikili dosyanın bir Linux üretim sunucusunda da aynı şekilde çalışacağı konusunda tam güvenle Excel oluşturma kodunu yerel olarak yazabilir ve test edebilir. Platforma özgü API'ler veya koşullu derleme blokları gerekli değildir.

Desteklenen ortamlar hakkında daha fazla ayrıntı için IronXL hızlı başlangıç genel bakışına göz atın.

Temel Okuma Dışındaki Yaygın Excel İşlemlerini Nasıl Ele Alıyorsunuz?

Hücre okuma ve yazma sadece temeldir. Gerçek dünya Excel otomasyonu tipik olarak biçimlendirme, formüller, çalışma sayfası yönetimi ve format dönüştürmeyi içerir.

Hücreleri Biçimlendirme ve Stil Uygulama

IronXL, yazı tipleri, renkler, kenarlıklar, hizalama ve sayı formatları dahil olmak üzere tam bir stil API'si sunar:

WorkBook workbook = WorkBook.Load("report.xlsx");
WorkSheet sheet = workbook.DefaultWorkSheet;

// Apply bold, font size, and background color to header row
var headerRange = sheet["A1:F1"];
headerRange.Style.Font.Bold = true;
headerRange.Style.Font.Height = 12;
headerRange.Style.SetBackgroundColor("#4472C4");
headerRange.Style.Font.Color = "#FFFFFF";
headerRange.Style.HorizontalAlignment = IronXl.Styles.HorizontalAlignment.Center;

// Format a currency column
sheet["D2:D100"].FormatString = "$#,##0.00";

// Apply a date format
sheet["E2:E100"].FormatString = "yyyy-MM-dd";

// Add borders to a data range
var dataRange = sheet["A1:F20"];
dataRange.Style.Border.Bottom.Type = IronXl.Styles.BorderType.Thin;
dataRange.Style.Border.Right.Type = IronXl.Styles.BorderType.Thin;

workbook.SaveAs("formatted-report.xlsx");
WorkBook workbook = WorkBook.Load("report.xlsx");
WorkSheet sheet = workbook.DefaultWorkSheet;

// Apply bold, font size, and background color to header row
var headerRange = sheet["A1:F1"];
headerRange.Style.Font.Bold = true;
headerRange.Style.Font.Height = 12;
headerRange.Style.SetBackgroundColor("#4472C4");
headerRange.Style.Font.Color = "#FFFFFF";
headerRange.Style.HorizontalAlignment = IronXl.Styles.HorizontalAlignment.Center;

// Format a currency column
sheet["D2:D100"].FormatString = "$#,##0.00";

// Apply a date format
sheet["E2:E100"].FormatString = "yyyy-MM-dd";

// Add borders to a data range
var dataRange = sheet["A1:F20"];
dataRange.Style.Border.Bottom.Type = IronXl.Styles.BorderType.Thin;
dataRange.Style.Border.Right.Type = IronXl.Styles.BorderType.Thin;

workbook.SaveAs("formatted-report.xlsx");
Imports IronXL

Dim workbook As WorkBook = WorkBook.Load("report.xlsx")
Dim sheet As WorkSheet = workbook.DefaultWorkSheet

' Apply bold, font size, and background color to header row
Dim headerRange = sheet("A1:F1")
headerRange.Style.Font.Bold = True
headerRange.Style.Font.Height = 12
headerRange.Style.SetBackgroundColor("#4472C4")
headerRange.Style.Font.Color = "#FFFFFF"
headerRange.Style.HorizontalAlignment = IronXL.Styles.HorizontalAlignment.Center

' Format a currency column
sheet("D2:D100").FormatString = "$#,##0.00"

' Apply a date format
sheet("E2:E100").FormatString = "yyyy-MM-dd"

' Add borders to a data range
Dim dataRange = sheet("A1:F20")
dataRange.Style.Border.Bottom.Type = IronXL.Styles.BorderType.Thin
dataRange.Style.Border.Right.Type = IronXL.Styles.BorderType.Thin

workbook.SaveAs("formatted-report.xlsx")
$vbLabelText   $csharpLabel

Stil seçeneklerine tam bir yolculuk için hücreleri, kenarlıkları ve yazı tiplerini stil etme kılavuzuna bakın.

Excel ve CSV Formatları Arasında Dönüştürme

IronXL, bir CSV'yi yükleyip ince ayarlı işlem süreçleri için bir XLSX olarak kaydetmenize veya bir XLSX dosyasını CSV'ye dışa aktarmanıza olanak tanıyarak format dönüşümünü doğrudan ele alır:

// Load a CSV file and save as XLSX
WorkBook csvBook = WorkBook.Load("data-import.csv");
csvBook.SaveAs("data-import.xlsx");

// Load an XLSX file and export as CSV
WorkBook xlsxBook = WorkBook.Load("report.xlsx");
xlsxBook.DefaultWorkSheet.SaveAsCsv("report.csv");
// Load a CSV file and save as XLSX
WorkBook csvBook = WorkBook.Load("data-import.csv");
csvBook.SaveAs("data-import.xlsx");

// Load an XLSX file and export as CSV
WorkBook xlsxBook = WorkBook.Load("report.xlsx");
xlsxBook.DefaultWorkSheet.SaveAsCsv("report.csv");
' Load a CSV file and save as XLSX
Dim csvBook As WorkBook = WorkBook.Load("data-import.csv")
csvBook.SaveAs("data-import.xlsx")

' Load an XLSX file and export as CSV
Dim xlsxBook As WorkBook = WorkBook.Load("report.xlsx")
xlsxBook.DefaultWorkSheet.SaveAsCsv("report.csv")
$vbLabelText   $csharpLabel

Ayırıcı yapılandırması ve kodlama seçenekleri dahil olmak üzere CSV işlemesi hakkında daha fazla ayrıntı için C# CSV okuyucu rehberi ve CSV'den XLSX'e dönüşüm kılavuzuna bakın.

Ücretsiz Denemeye Nasıl Başlarsınız?

IronXL, bir satın alma kararı vermeden önce tüm özellik setini test etmenize olanak tanıyan bir ücretsiz geliştirme lisansı ile indirilebilir. Deneme sırasında hiçbir özellik kısıtlaması yoktur -- üretimde çalışan kütüphane, değerlendirdiğinizle aynıdır.

Başlamak için:

  1. NuGet üzerinden paketi yükleyin:
    dotnet add package IronXL
    dotnet add package IronXL
    SHELL
  2. Ücretsiz deneme anahtarı almak için IronXL lisanslama sayfasına gidin.
  3. Herhangi bir IronXL çağrısından önce kodda anahtarı uygulayı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

Lisanslar bireysel geliştiriciler, ekipler ve kuruluşlar için mevcuttur. IronXL ürün sayfası telif ücretsiz dağıtım hakları dahil olmak üzere tam fiyatlandırma detayları ve dağıtım seçenekleri sağlar. Tüm Iron Software ürünlerine ve bunların nasıl entegre edildiğine genel bir bakış için Iron Software ürün paketina bakın.

Sıkça Sorulan Sorular

Microsoft Office olmadan C#'da Excel dosyalarını nasıl açabilirim?

IronXL ile C#'da Microsoft Office'e ihtiyaç duymadan Excel dosyalarını açabilirsiniz. IronXL, daha iyi performans ve hiçbir Excel bağımlılığı gerektirmeyen, Interop'a modern bir alternatif sunmaktadır.

C#'da Excel dosyalarını işlemek için IronXL kullanmanın faydaları nelerdir?

IronXL, geliştirilmiş performans, Excel kurulumlarına bağımlılık olmaması ve esneklik sağlamak gibi çeşitli avantajlar sunar. Geliştiricilere raporları otomatikleştirme, veri ithalatını okuma ve etkili bir şekilde elektronik tablo oluşturma imkanı tanır.

IronXL, otomasyon görevleri için Excel dosyalarını işleyebilir mi?

Evet, IronXL, haftalık raporlar oluşturma, veri ithalatlarını okuma ve dinamik elektronik tablo oluşturma araçları oluşturarak otomasyon görevleri için uygundur.

IronXL, C# uygulamalarında Interop'un uygun bir ikamesi midir?

IronXL, Excel bağımlılığı ihtiyaçını ortadan kaldıran ve Excel dosyaları üzerinde çalışırken uygulama performansını geliştiren modern bir çözüm sunarak Interop için uygun bir ikame sağlar.

IronXL, Excel dosyalarına okuma ve yazma işlemlerini destekliyor mu?

IronXL, Excel dosyalarından okuma ve yazma işlemlerini tam olarak destekler ve .NET geliştiricileri için elektronik tablo verilerini işleme konusunda esnek bir araçtır.

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