C# ile IronXL Kullanarak Excel Dosyalarını Nasıl Açarsınız
C#'ta Excel dosyalarını açmak ve üzerinde çalışmak, neredeyse her .NET geliştiricisinin er ya da geç karşılaşacağı bir durumdur. İster haftalık raporları otomatikleştiriyor olun, veri ithalatlarını işleyin, veya elektronik tabloları uçuşta üreten araçlar oluşturuyor olun, seçtiğiniz kütüphane, hız, güvenilirlik ve dağıtım esnekliğinde önemli bir fark yaratabilir.
Bu eğitim, IronXL kullanarak C# içinde Excel dosyalarını nasıl açacağınızı anlatıyor -- Microsoft Office kurulumunu gerektirmeden iş kitaplarını okuyan, düzenleyen ve yazan hafif bir Excel kütüphanesi. Verileri yüklemeyi, çalışma sayfalarına erişmeyi ve hücrelerle programatik olarak çalışmayı, hepsini C# uygulamanız içinde ne kadar basit olduğunu göreceksiniz.
IronXL'yi Microsoft.Office.Interop.Excel'e Neden Tercih Etmeli?
Microsoft.Office.Interop.Excel, Excel otomasyonu için geleneksel bir yaklaşım olmasına rağmen, modern uygulamalar için IronXL'yi daha iyi bir tercih yapan önemli sınırlamalar ile birlikte gelir. Microsoft, Sunucularda Office Interop kullanımını önermemektedir, dengesizlik, ölçeklenebilirlik sorunları ve desteklenmeyen dağıtım senaryoları nedeniyle.
| Özellik | IronXL | Microsoft.Office.Interop.Excel |
|---|---|---|
| Excel Kurulumu Gerekli | Hayır | Evet |
| Platformlar Arası Destek | Windows, Linux, macOS | Sadece Windows |
| Sunucu Dağıtımı | Tamamen destekleniyor | Microsoft tarafından önerilmiyor |
| Bellek Yönetimi | Otomatik | Manuel COM temizliği gerekli |
| API Kompleksliği | Basit ve sezgisel | Karmaşık COM arabirimleri |
| Dosya Format Desteği | XLS, XLSX, CSV, TSV, JSON | Excel formatları ile sınırlı |
| İş Parçacığı Güvenliği | Destekleniyor | Sadece tek iş parçacığı |
IronXL, Microsoft Excel'e olan bağımlılığı ortadan kaldırarak sunucu ortamları, Docker konteynerleri ve Azure gibi bulut platformları için idealdir. Bu kütüphane, elle bellek yönetimi veya COM nesneleri ile uğraşmanıza gerek kalmadan temiz, modern bir API sağlar. Dosyaları açmanın ötesinde, IronXL, formül değerlendirme, grafik oluşturma ve hücre stillendirme dahil her şeyi halleder.
.NET Projesine IronXL Nasıl Kurulur?
IronXL ile başlamak oldukça kolaydır -- birkaç dakika içinde projelerinize NuGet Paket Yöneticisi aracılığıyla eklenebilir. Visual Studio'da Paket Yöneticisi Konsolunu açın ve şu komutu çalıştırın:
Install-Package IronXL.Excel
Her iki komut da aynı paketi yükler. İlkini Visual Studio Paket Yöneticisi Konsolu'nda ve ikincisini .NET CLI ile kullanın. Kurulumdan sonra, paket referansının <PackageReference Include="IronXL.Excel" /> altında proje dosyanızda göründüğünü doğrulayabilirsiniz.
IronXL Hangi .NET Sürümlerini Destekliyor?
IronXL, modern .NET sürümlerinin tam spektrumunu hedefler, .NET 10, .NET 8, .NET 6, .NET Framework 4.6.2 ve üzeri ile .NET Standard 2.0 dahil. Bu geniş destek, IronXL'yi yeni projelerinizde .NET 10 hedefleyen veya geleneksel .NET Framework üzerinde çalışan eski uygulamalarınızda kullanabileceğiniz anlamına gelir.
Kütüphane, hedef çerçeveye göre doğru ikili dosyayı otomatik olarak seçen tek bir NuGet paketi olarak mevcuttur. Ek bağımlılıklar yok, platforma özgü kurulumlar yok ve Excel lisansı gerekmez. IronXL uyumluluk kılavuzu için desteklenen tüm çalışma zamanları ve platformlar hakkında bilgiyi öğrenmek için ziyaret edin.
Mevcut Bir Excel Dosyasını C#'ta Nasıl Açarsınız ve Okursunuz?
IronXL ile mevcut Excel dosyalarını açmak yalnızca birkaç satır kod gerektirir. Kütüphane, birleştirilmiş bir API aracılığıyla XLS ve XLSX dosyalarını okumanın yanı sıra CSV ve TSV formatlarını da okuyor. 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}")
WorkBook.Load() yöntemi, dosya formatını - XLS, XLSX, CSV veya TSV - otomatik olarak algılar ve ek yapılandırma olmadan işleme gerçekleştirir. Çalışma sayfalarına ya workbook.WorkSheets[0] kullanarak indeksle ya da GetWorkSheet() kullanarak adla erişebilirsiniz. Bireysel hücre değerleri, kodu özlü ve anlatımlı hale getiren köşeli parantez gösterimi (sheet["A1"]) aracılığıyla okunabilir. Desteklenen dosya türlerinin tam listesi için SpreadsheetML üzerinde Open XML SDK belgelerine ve IronXL NuGet paket sayfasına bakın.
Tipli erişim için, IronXL hücreler üzerinde doğrudan .StringValue, .DecimalValue, .IntValue, .BoolValue ve .DateTimeValue gibi özellikler sağlar. Bu, genel nesne tabanlı API'lerle yaygın olan tür tahminlerini ortadan kaldırır. Karmaşık senaryolar için Excel aralıklarıyla çalışma kılavuzuna ve hücre veri formatları belgelerine başvurun.
Çıktı

Excel Dosyalarını Bir Akış veya Bayt Dizisinden Nasıl Yüklersiniz?
Web uygulamaları ve bulut işlevlerinde dosya verilerini dosya yolu yerine genellikle bir akış veya bayt dizisi olarak alırsınız. IronXL her iki durumu da halleder:
// 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
Akış tabanlı yükleme, bir IFormFile yüklemesi aldığınız ASP.NET Core denetleyicilerinde özellikle faydalıdır. Basitçe formFile.OpenReadStream() çağırın ve sonucu WorkBook.Load() geçirin. ASP.NET Core entegrasyon desenlerinin tamamı için, ASP.NET Core Excel eğitimine bakın.
C#'ta Yeni Excel Çalışma Kitapları Nasıl Oluşturulur?
IronXL'nin çalışma kitabı oluşturma kapasiteleri ile yeni Excel dosyaları oluşturmak eşit derecede kolaydır. Aşağıdaki örnek, biçimlendirilmiş bir çeyrek raporu 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.")
WorkBook.Create() yöntemi belirtilen formatta yeni bir çalışma kitabı başlatır. Birden çok çalışma sayfası CreateWorkSheet() kullanarak ekleyebilir, hücreleri dize, sayı, boolean ve tarih gibi çeşitli veri türleriyle doldurabilir ve Formula özelliği aracılığıyla doğrudan Excel formülleri uygulayabilirsiniz. Kütüphane, veri türü dönüşümlerini ve Excel'e özgü formatlama gereksinimlerini otomatik olarak halleder.
Başlıkları stillendirmek ve çerçeveler eklemek için hücre stillendirme API'sini kullanın. Şablon temelli rapor oluşturma için, mevcut Excel şablonlarından dışa aktarı kılavuzuna bakın.
Çıktı

Excel Çalışma Sayfası Verilerini Toplu Olarak Nasıl Okur ve İşlersiniz?
IronXL, aralık tabanlı işlemler ve DataTable dönüştürme aracılığıyla veri çıkarma ve toplu işlemleri verimli bir şekilde işleyebilir:
// 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}")
Aralık seçimi sözdizimi (sheet["A1:D10"]) birden fazla hücreyle birden çalışmanın şık bir yolunu sağlar. ToDataTable() yöntemi, çalışma sayfası verilerini Entity Framework, veri bağlama kontrolleri ve SQL toplu kopyalama işlemleriyle doğrudan entegre olan bir System.Data.DataTable çevirir. IronXL ayrıca doğrudan aralıklar üzerinde Sum(), Avg(), Max() ve Min() gibi toplam işlevleri destekler, manuel yineleme kodu yazma ihtiyacını ortadan kaldırır.
Çok büyük veri kümelerini verimli bir şekilde işlemek için, tam IronXL API referansı için akış ve parça işleme desenleri hakkında danışın.

Bir Çalışma Sayfasında Hücreleri Nasıl Filtreleyip Ararsınız?
Aralık tabanlı erişimin ötesinde, IronXL, değerle hücre aramaya, koşullu mantık uygulamaya ve satırları ve sütunları programatik olarak yinelemeye imkan 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
Bu desen, belirli değerleri taraması gereken ve daha sonra işlemek üzere alınan bir dosyada taranması gereken veri doğrulama iş akışlarında yaygındır. Gelişmiş filtreleme kullanım durumları için, Excel aralık seçim belgelerine bakın.
Bu Yaklaşım Hangi Dağıtım Senaryolarını Destekliyor?
IronXL kullanmanın en pratik avantajlarından biri, sistemde Microsoft Office kurulmadan çalışabilme yeteneğidir. Bu, Interop tabanlı çözümlerin basitçe eşleşemeyeceği bir dağıtım esnekliği yaratır:
Bulut ve Konteyner Dağıtımı
IronXL Azure App Service, AWS Lambda ve Google Cloud Run'da herhangi bir özel yapılandırma gerektirmeden çalışır. Office bağımlılığı olmadığı için, hem lisanslama maliyetinden hem de Office'i bir konteyner görüntüsüne dahil etmenin 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 kılavuzu, Debian, Alpine ve Windows konteyner yapılandırmalarını kapsar. Tüm durumlarda, IronXL'yi NuGet üzerinden yüklersiniz ve ek sistem paketleri olmadan çalışır.
Sunucu ve CI/CD Pipeline Kullanımı
Sunucu ortamlarda genellikle bir GUI yoktur ve Windows masaüstü oturumuna bağlı uygulamaları çalıştıramazlar. IronXL tamamen arka plan modunda çalışır, bu da onu uygun hale getirir:
- Planlanmış arka plan işlerinde Excel raporları oluşturmak
- ASP.NET Core API'lerinde yüklenen elektronik tabloları işleme
- Otomatikleştirilmiş hatlarda DataTable veya veri tabanı sorgu sonuçlarını XLSX'e aktarma
- CI/CD test çalıştırmaları sırasında ithal edilen veri dosyalarını doğrulama
Özel olarak ASP.NET Core için, dosya akışı, yanıt başlıkları ve doğru atık yönetimi desenlerini ele alan ASP.NET Core Excel dışa aktarma eğitimi'ne bakın.
Çapraz Platform Geliştirme
IronXL, .NET Standard 2.0'ı hedef alır ve Linux ve macOS üzerinde yerel olarak çalışarak çapraz platform geliştirme iş akışlarını mümkün kılar. macOS üzerindeki geliştiriciler, aynı ikilinin bir Linux üretim sunucusunda aynı şekilde çalışacağından emin olarak yerel olarak Excel üretimi kodunu yazıp test edebilirler. Platforma özgü API'lere veya koşullu derleme bloklarına ihtiyaç yoktur.
Desteklenen ortamlar hakkında daha fazla bilgi için IronXL başlangıç kılavuzu'na bakın.
Temel Okumanın Ötesinde 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üşümünü içerir.
Hücreleri Biçimlendirme ve Stilleri Uygulama
IronXL, yazı tipleri, renkler, kenarlıklar, hizalama ve sayı formatlarını kapsayan eksiksiz bir stil API'si sağlar:
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")
Stil seçenekleriyle ilgili tam bir gezinme için hücreleri, kenarlıkları ve yazı tiplerini stilize etme'ye bakın.
Excel ve CSV Formatları Arasında Dönüştürme
IronXL, format dönüşümünü doğrudan ele alır, bir CSV'yi yükleyip XLSX olarak kaydetmenize veya bir XLSX dosyasını CSV'ye dışa aktarmanıza olanak tanı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")
CSV işleme hakkında daha fazla ayrıntı için, ayırıcı yapılandırması ve kodlama seçenekleri de dahil olmak üzere C# CSV okuma eğitimi ve CSV'den XLSX'e dönüşüm kılavuzu'na bakın.
Ücretsiz Bir Deneme ile Başlamak İçin Ne Yapmalısınız?
IronXL, bir satın alma işlemi yapmadan önce tam özellik setini test etmenizi sağlayan ücretsiz bir geliştirme lisansıyla indirmeye sunulmuştur. Deneme sırasında hiçbir özellik kısıtlaması yoktur — üretimde çalışan aynı kütüphane değerlendirirsiniz.
Başlamak için:
- Paketi NuGet üzerinden yükleyin:
dotnet add package IronXL.Excel
- IronXL lisanslama sayfasını ziyaret ederek ücretsiz bir deneme anahtarı alın.
- 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ı tam fiyatlandırma detaylarını ve telif ücretsiz dağıtım hakları dahil olmak üzere dağıtım seçeneklerini sağlar. Tüm Iron Software ürünleri ve bunların nasıl entegre edildiği hakkında daha geniş bir bakış için Iron Software ürün paketi'ne bakın.
Sıkça Sorulan Sorular
Microsoft Office olmadan C# dilinde Excel dosyalarını nasıl açabilirim?
IronXL kullanarak, C# dilinde Microsoft Office'e ihtiyaç duymadan Excel dosyalarınızı açabilirsiniz. IronXL, Interop için modern bir alternatif sunar, daha iyi performans sağlar ve Excel bağımlılıklarını ortadan kaldırır.
C# dilinde Excel dosyalarını yönetmek için IronXL kullanmanın faydaları nelerdir?
IronXL çeşitli faydalar sunar, bunlar arasında gelişmiş performans, Excel kurulumlarına bağımlı olmama ve dağıtımda daha fazla esneklik bulunur. Geliştiricilerin raporları otomatikleştirmesine, veri ithalatı okumasına ve verimli bir şekilde elektronik tablolar üretmesine olanak tanır.
IronXL, otomasyon görevleri için Excel dosyalarını yönetebilir mi?
Evet, IronXL, haftalık raporlar hazırlama, veri ithalatı okuma ve dinamik elektronik tablo üretme araçları oluşturma gibi otomasyon görevleri için çok uygundur.
IronXL, C# uygulamalarında Interop için uygun bir yedek midir?
IronXL, Interop için uygun bir alternatiftir ve Excel bağımlılıklarını ortadan kaldırarak Excel dosyalarıyla çalışırken uygulama performansını artırır.
IronXL, Excel dosyalarıyla okuma ve yazma işlevlerini destekliyor mu?
IronXL, hem Excel dosyalarından okuma hem de bu dosyalara yazma işlemlerini tamamen destekler, bu da onu .NET geliştiricileri için çok yönlü bir araç haline getirir.




