C#'da Liste Nesnesini Excel'e Aktarma
Nesne koleksiyonlarını Excel dosyalarına dışa aktarmak, iş uygulamalarında temel bir gerekliliktir. Raporlar oluştururken, veri içgörülerini paylaşırken veya yedekleme için Excel çalışma sayfaları oluştururken, geliştiriciler List<t> nesnelerini profesyonel elektronik tablolara dönüştürmek için güvenilir bir yola ihtiyaç duyarlar. IronXL, Microsoft Office'i sunucuda gerektirmeden .NET 10, .NET Core veya .NET Framework'te Excel dosyaları oluşturmanın geleneksel zorluklarını ortadan kaldıran bir çözüm sunar.
Listelerin Excel Dosyalarına Dışa Aktarılması Neden Zorlu?
Verileri Excel'e dışa aktarmak için kullanılan geleneksel yöntemler genellikle MS Excel kurulumunu gerektiren Microsoft Office Interop'u içerir ve bu da dağıtım baş ağrılarına yol açar. Yansıma kullanılarak hücre hücre dolum manueldir, zaman alıcıdır ve hata yapmaya açıktır. IronXL'in veri ithalat özellikleri, veri kaynakları ve Excel sütun başlıkları arasında akıllıca özellik eşlemesi gerçekleştirerek MS Office veya karmaşık yansıma kodu gerektirmeden bu sorunları çözer.
Kütüphane, tür dönüştürmeyi otomatik olarak yapar, iç içe nesneleri destekler ve CSV dosyaları ile XLSX dosyaları gibi farklı formatlar arasında veri bütünlüğünü korur. Interop olmadan C# Excel işlemleri üzerinde çalışan geliştiriciler için IronXL, güvenilir Excel oluşturma ve veri ithalat/ihracat yeteneklerine ihtiyaç duyan modern .NET projeleri için ideal bir seçimdir.
Nesne Dışa Aktarımını IronXL Nasıl Basitleştirir?
IronXL, COM kaydı, Office lisansları ve interop montajlarını ortadan kaldırır. Bir List<t> Excel'e aktarırken, kütüphane:
- Nesne özelliklerini doğrudan sütun başlıklarına eşler
- .NET türlerini (
DateTime,decimal,bool) doğru Excel temsillerine dönüştürür - Hücre değerleri, aralıklar ve biçimlendirme üzerinde ince ayar kontrolü sağlar
- Tek bir yöntem çağrısıyla XLSX, XLS, CSV ve diğer formatlarda sonuç çıktıyı kaydeder
Bu yaklaşım, yüzlerce satırlık kalıp kod yazmadan temiz, profesyonel hesap tablosu çıktısı almanızı sağlar. Daha sonra verileri geri almak için Excel'den veri ithal edebilirsiniz ve döngüsel veri iş akışlarını kolaylaştırabilirsiniz.
IronXL Nasıl Kurulur?
IronXL ile başlamanın minimal bir kurulum gerektirir. NuGet Paket Yöneticisi Konsolu aracılığıyla kütüphaneyi kurun:
Install-Package IronXL.Excel
Veya .NET CLI kullanın:
dotnet add package IronXL.Excel
Kurulum tamamlandıktan sonra, dosyanıza using IronXL; yönergesini ekleyin. Ek bir Office bağımlılığı veya çalışma zamanı kurulumu gerekmez.
Basit Liste Nasıl Excel Dosyasına Dışa Aktarılır?
Aşağıdaki örnek, .NET 10'da tercih edilen stil olan üst düzey ifadeleri kullanarak bir Employee nesne listesini bir XLSX dosyasına aktarmayı gösterir:
using IronXL;
using System.Data;
// Define the Employee model
record Employee(int Id, string Name, string Department, decimal Salary, DateTime HireDate);
// Create sample employee data
List<Employee> employees =
[
new(1, "Alice Johnson", "Engineering", 95000, new DateTime(2020, 3, 15)),
new(2, "Bob Smith", "Marketing", 75000, new DateTime(2021, 7, 1)),
new(3, "Carol Williams","Engineering",105000, new DateTime(2019, 11, 20))
];
// Build a DataTable from the list
DataTable dataTable = new();
dataTable.Columns.Add("Id", typeof(int));
dataTable.Columns.Add("Name", typeof(string));
dataTable.Columns.Add("Department", typeof(string));
dataTable.Columns.Add("Salary", typeof(decimal));
dataTable.Columns.Add("HireDate", typeof(DateTime));
foreach (var emp in employees)
dataTable.Rows.Add(emp.Id, emp.Name, emp.Department, emp.Salary, emp.HireDate);
// Create an IronXL workbook and worksheet
WorkBook workbook = new();
WorkSheet worksheet = workbook.CreateWorkSheet("Employees");
// Write headers
for (int col = 0; col < dataTable.Columns.Count; col++)
worksheet.SetCellValue(0, col, dataTable.Columns[col].ColumnName);
// Write data rows
for (int row = 0; row < dataTable.Rows.Count; row++)
for (int col = 0; col < dataTable.Columns.Count; col++)
worksheet.SetCellValue(row + 1, col, dataTable.Rows[row][col]);
// Save as XLSX
workbook.SaveAs("EmployeeReport.xlsx");
Console.WriteLine("EmployeeReport.xlsx saved.");
using IronXL;
using System.Data;
// Define the Employee model
record Employee(int Id, string Name, string Department, decimal Salary, DateTime HireDate);
// Create sample employee data
List<Employee> employees =
[
new(1, "Alice Johnson", "Engineering", 95000, new DateTime(2020, 3, 15)),
new(2, "Bob Smith", "Marketing", 75000, new DateTime(2021, 7, 1)),
new(3, "Carol Williams","Engineering",105000, new DateTime(2019, 11, 20))
];
// Build a DataTable from the list
DataTable dataTable = new();
dataTable.Columns.Add("Id", typeof(int));
dataTable.Columns.Add("Name", typeof(string));
dataTable.Columns.Add("Department", typeof(string));
dataTable.Columns.Add("Salary", typeof(decimal));
dataTable.Columns.Add("HireDate", typeof(DateTime));
foreach (var emp in employees)
dataTable.Rows.Add(emp.Id, emp.Name, emp.Department, emp.Salary, emp.HireDate);
// Create an IronXL workbook and worksheet
WorkBook workbook = new();
WorkSheet worksheet = workbook.CreateWorkSheet("Employees");
// Write headers
for (int col = 0; col < dataTable.Columns.Count; col++)
worksheet.SetCellValue(0, col, dataTable.Columns[col].ColumnName);
// Write data rows
for (int row = 0; row < dataTable.Rows.Count; row++)
for (int col = 0; col < dataTable.Columns.Count; col++)
worksheet.SetCellValue(row + 1, col, dataTable.Rows[row][col]);
// Save as XLSX
workbook.SaveAs("EmployeeReport.xlsx");
Console.WriteLine("EmployeeReport.xlsx saved.");
Imports IronXL
Imports System.Data
' Define the Employee model
Public Class Employee
Public Property Id As Integer
Public Property Name As String
Public Property Department As String
Public Property Salary As Decimal
Public Property HireDate As DateTime
Public Sub New(id As Integer, name As String, department As String, salary As Decimal, hireDate As DateTime)
Me.Id = id
Me.Name = name
Me.Department = department
Me.Salary = salary
Me.HireDate = hireDate
End Sub
End Class
' Create sample employee data
Dim employees As New List(Of Employee) From {
New Employee(1, "Alice Johnson", "Engineering", 95000D, New DateTime(2020, 3, 15)),
New Employee(2, "Bob Smith", "Marketing", 75000D, New DateTime(2021, 7, 1)),
New Employee(3, "Carol Williams", "Engineering", 105000D, New DateTime(2019, 11, 20))
}
' Build a DataTable from the list
Dim dataTable As New DataTable()
dataTable.Columns.Add("Id", GetType(Integer))
dataTable.Columns.Add("Name", GetType(String))
dataTable.Columns.Add("Department", GetType(String))
dataTable.Columns.Add("Salary", GetType(Decimal))
dataTable.Columns.Add("HireDate", GetType(DateTime))
For Each emp In employees
dataTable.Rows.Add(emp.Id, emp.Name, emp.Department, emp.Salary, emp.HireDate)
Next
' Create an IronXL workbook and worksheet
Dim workbook As New WorkBook()
Dim worksheet As WorkSheet = workbook.CreateWorkSheet("Employees")
' Write headers
For col As Integer = 0 To dataTable.Columns.Count - 1
worksheet.SetCellValue(0, col, dataTable.Columns(col).ColumnName)
Next
' Write data rows
For row As Integer = 0 To dataTable.Rows.Count - 1
For col As Integer = 0 To dataTable.Columns.Count - 1
worksheet.SetCellValue(row + 1, col, dataTable.Rows(row)(col))
Next
Next
' Save as XLSX
workbook.SaveAs("EmployeeReport.xlsx")
Console.WriteLine("EmployeeReport.xlsx saved.")
Bu örnekte, bir List<Employee>, bir DataTable içine dönüştürülür ve ardından IronXL çalışma sayfasına başlıklar ve satırlar yazılır. IronXL, oluşturulan elektronik tabloda temiz formatlama sağlayarak int, string ve DateTime gibi veri türlerini otomatik olarak işler. Excel kaydetme işlevi, herhangi bir hesap tablosu uygulamasında açılmaya hazır bir XLSX dosyası üretir.

Karmaşık İş Nesneleri Nasıl Dışa Aktarılır?
Gerçek dünya .NET uygulamaları genellikle daha karmaşık veri yapıları içerir. Aşağıdaki örnek, hesaplanmış bir özelliğe sahip bir ürün envanteri raporu oluşturur:
using IronXL;
using System.Data;
// Define the Product model with a computed property
record Product(
string SKU,
string ProductName,
string Category,
decimal Price,
int StockLevel,
bool IsActive,
DateTime LastRestocked)
{
public decimal CalculatedValue => Price * StockLevel;
}
// Build the product list
List<Product> products =
[
new("TECH-001", "Wireless Mouse", "Electronics", 29.99m, 150, true, DateTime.Now.AddDays(-5)),
new("TECH-002", "Mechanical Keyboard", "Electronics", 89.99m, 75, true, DateTime.Now.AddDays(-12)),
new("OFF-001", "Desk Organizer", "Office Supplies", 15.99m, 0, false, DateTime.Now.AddMonths(-1))
];
// Populate a DataTable
DataTable dt = new();
dt.Columns.Add("SKU", typeof(string));
dt.Columns.Add("ProductName", typeof(string));
dt.Columns.Add("Category", typeof(string));
dt.Columns.Add("Price", typeof(decimal));
dt.Columns.Add("StockLevel", typeof(int));
dt.Columns.Add("IsActive", typeof(bool));
dt.Columns.Add("LastRestocked", typeof(DateTime));
dt.Columns.Add("CalculatedValue", typeof(decimal));
foreach (var p in products)
dt.Rows.Add(p.SKU, p.ProductName, p.Category, p.Price,
p.StockLevel, p.IsActive, p.LastRestocked, p.CalculatedValue);
// Create the workbook
WorkBook wb = WorkBook.Create();
WorkSheet ws = wb.CreateWorkSheet("Inventory");
// Write column headers
string[] headers = ["SKU","ProductName","Category","Price",
"StockLevel","IsActive","LastRestocked","CalculatedValue"];
for (int col = 0; col < headers.Length; col++)
ws.SetCellValue(0, col, headers[col]);
// Write data rows
for (int row = 0; row < dt.Rows.Count; row++)
for (int col = 0; col < dt.Columns.Count; col++)
ws.SetCellValue(row + 1, col, dt.Rows[row][col]);
// Auto-size columns for readability
for (int col = 0; col < headers.Length; col++)
ws.AutoSizeColumn(col);
wb.SaveAs("ProductInventory.xlsx");
Console.WriteLine("ProductInventory.xlsx saved.");
using IronXL;
using System.Data;
// Define the Product model with a computed property
record Product(
string SKU,
string ProductName,
string Category,
decimal Price,
int StockLevel,
bool IsActive,
DateTime LastRestocked)
{
public decimal CalculatedValue => Price * StockLevel;
}
// Build the product list
List<Product> products =
[
new("TECH-001", "Wireless Mouse", "Electronics", 29.99m, 150, true, DateTime.Now.AddDays(-5)),
new("TECH-002", "Mechanical Keyboard", "Electronics", 89.99m, 75, true, DateTime.Now.AddDays(-12)),
new("OFF-001", "Desk Organizer", "Office Supplies", 15.99m, 0, false, DateTime.Now.AddMonths(-1))
];
// Populate a DataTable
DataTable dt = new();
dt.Columns.Add("SKU", typeof(string));
dt.Columns.Add("ProductName", typeof(string));
dt.Columns.Add("Category", typeof(string));
dt.Columns.Add("Price", typeof(decimal));
dt.Columns.Add("StockLevel", typeof(int));
dt.Columns.Add("IsActive", typeof(bool));
dt.Columns.Add("LastRestocked", typeof(DateTime));
dt.Columns.Add("CalculatedValue", typeof(decimal));
foreach (var p in products)
dt.Rows.Add(p.SKU, p.ProductName, p.Category, p.Price,
p.StockLevel, p.IsActive, p.LastRestocked, p.CalculatedValue);
// Create the workbook
WorkBook wb = WorkBook.Create();
WorkSheet ws = wb.CreateWorkSheet("Inventory");
// Write column headers
string[] headers = ["SKU","ProductName","Category","Price",
"StockLevel","IsActive","LastRestocked","CalculatedValue"];
for (int col = 0; col < headers.Length; col++)
ws.SetCellValue(0, col, headers[col]);
// Write data rows
for (int row = 0; row < dt.Rows.Count; row++)
for (int col = 0; col < dt.Columns.Count; col++)
ws.SetCellValue(row + 1, col, dt.Rows[row][col]);
// Auto-size columns for readability
for (int col = 0; col < headers.Length; col++)
ws.AutoSizeColumn(col);
wb.SaveAs("ProductInventory.xlsx");
Console.WriteLine("ProductInventory.xlsx saved.");
Imports IronXL
Imports System.Data
' Define the Product model with a computed property
Public Class Product
Public Property SKU As String
Public Property ProductName As String
Public Property Category As String
Public Property Price As Decimal
Public Property StockLevel As Integer
Public Property IsActive As Boolean
Public Property LastRestocked As DateTime
Public ReadOnly Property CalculatedValue As Decimal
Get
Return Price * StockLevel
End Get
End Property
Public Sub New(sku As String, productName As String, category As String, price As Decimal, stockLevel As Integer, isActive As Boolean, lastRestocked As DateTime)
Me.SKU = sku
Me.ProductName = productName
Me.Category = category
Me.Price = price
Me.StockLevel = stockLevel
Me.IsActive = isActive
Me.LastRestocked = lastRestocked
End Sub
End Class
' Build the product list
Dim products As New List(Of Product) From {
New Product("TECH-001", "Wireless Mouse", "Electronics", 29.99D, 150, True, DateTime.Now.AddDays(-5)),
New Product("TECH-002", "Mechanical Keyboard", "Electronics", 89.99D, 75, True, DateTime.Now.AddDays(-12)),
New Product("OFF-001", "Desk Organizer", "Office Supplies", 15.99D, 0, False, DateTime.Now.AddMonths(-1))
}
' Populate a DataTable
Dim dt As New DataTable()
dt.Columns.Add("SKU", GetType(String))
dt.Columns.Add("ProductName", GetType(String))
dt.Columns.Add("Category", GetType(String))
dt.Columns.Add("Price", GetType(Decimal))
dt.Columns.Add("StockLevel", GetType(Integer))
dt.Columns.Add("IsActive", GetType(Boolean))
dt.Columns.Add("LastRestocked", GetType(DateTime))
dt.Columns.Add("CalculatedValue", GetType(Decimal))
For Each p In products
dt.Rows.Add(p.SKU, p.ProductName, p.Category, p.Price, p.StockLevel, p.IsActive, p.LastRestocked, p.CalculatedValue)
Next
' Create the workbook
Dim wb As WorkBook = WorkBook.Create()
Dim ws As WorkSheet = wb.CreateWorkSheet("Inventory")
' Write column headers
Dim headers As String() = {"SKU", "ProductName", "Category", "Price", "StockLevel", "IsActive", "LastRestocked", "CalculatedValue"}
For col As Integer = 0 To headers.Length - 1
ws.SetCellValue(0, col, headers(col))
Next
' Write data rows
For row As Integer = 0 To dt.Rows.Count - 1
For col As Integer = 0 To dt.Columns.Count - 1
ws.SetCellValue(row + 1, col, dt.Rows(row)(col))
Next
Next
' Auto-size columns for readability
For col As Integer = 0 To headers.Length - 1
ws.AutoSizeColumn(col)
Next
wb.SaveAs("ProductInventory.xlsx")
Console.WriteLine("ProductInventory.xlsx saved.")
Bu kod, SKU, fiyat, stok seviyesi ve yeniden stoklama tarihi gibi detayları içeren Product nesnelerinden bir liste oluşturur, ardından her öğe için türetilmiş bir CalculatedValue hesaplar. IronXL, ondalık sayılar, booleanlar ve tarihler gibi veri türlerini profesyonel hesap tablosu çıktısı sağlamak için işler. Sonuç ProductInventory.xlsx, iş raporlaması veya analitik için uygun, temiz, veriye dayalı bir envanter dışa aktarımı sağlar. Mevcut kod tabanınız zaten DataTable nesneleri ile çalışıyorsa, bir DataTable'ı doğrudan Excel'e aktarabilirsiniz.

Sütun Genişlikleri ve Satır Yükseklikleri Nasıl Kontrol Edilir?
Verileri yazdıktan sonra, hesap tablosunun görsel düzenini programatik olarak kontrol edebilirsiniz. IronXL'nin AutoSizeColumn yöntemi, içeriğe uygun her sütunu ayarlar. Alternatif olarak, belirli sütun genişliklerini ayarlayabilir veya kaydetmeden önce sayfa yapısını ayarlamak için satır ve sütun ekleyip kaldırabilirsiniz.
IronXL, satır yüksekliği için, çalışma sayfasının yazdırılacağı veya bir PDF olarak paylaşılacağı durumlarda, sabit bir piksel yüksekliği ayarlamanıza olanak tanıyan satır seviyesinde özellikler sunar. Tutarlı sütun ve satır boyutlandırması, Excel dosyası farklı ekran çözünürlüklerinde açıldığında veya farklı ölçeklerde yazdırıldığında okunabilirliği artırır, bu özellikle dış paydaşlara dağıtılan raporlar için önemlidir.
Profesyonel Biçimlendirme Nasıl Eklenir?
Biçimlendirme, temel dışa aktarımları cilalı raporlara dönüştürür. IronXL'in stil API'si, herhangi bir hücre veya aralık üzerinde yazı tipi, renk, kenarlık ve sayı formatı ayarlarını ortaya çıkarır:
using IronXL;
WorkBook wb = WorkBook.Load("ProductInventory.xlsx");
WorkSheet ws = wb.DefaultWorkSheet;
// Bold header row with a blue background and white text
Range headerRange = ws["A1:H1"];
headerRange.Style.Font.Bold = true;
headerRange.Style.BackgroundColor = "#4472C4";
headerRange.Style.Font.Color = "#FFFFFF";
// Format the Price column as currency
Range priceColumn = ws["D2:D100"];
priceColumn.Style.NumberFormat = "$#,##0.00";
// Highlight low-stock rows in red
for (int row = 2; row <= 4; row++)
{
var stockCell = ws[$"E{row}"];
if (stockCell.IntValue < 10)
stockCell.Style.BackgroundColor = "#FF6B6B";
}
wb.SaveAs("FormattedInventory.xlsx");
Console.WriteLine("FormattedInventory.xlsx saved.");
using IronXL;
WorkBook wb = WorkBook.Load("ProductInventory.xlsx");
WorkSheet ws = wb.DefaultWorkSheet;
// Bold header row with a blue background and white text
Range headerRange = ws["A1:H1"];
headerRange.Style.Font.Bold = true;
headerRange.Style.BackgroundColor = "#4472C4";
headerRange.Style.Font.Color = "#FFFFFF";
// Format the Price column as currency
Range priceColumn = ws["D2:D100"];
priceColumn.Style.NumberFormat = "$#,##0.00";
// Highlight low-stock rows in red
for (int row = 2; row <= 4; row++)
{
var stockCell = ws[$"E{row}"];
if (stockCell.IntValue < 10)
stockCell.Style.BackgroundColor = "#FF6B6B";
}
wb.SaveAs("FormattedInventory.xlsx");
Console.WriteLine("FormattedInventory.xlsx saved.");
Imports IronXL
Dim wb As WorkBook = WorkBook.Load("ProductInventory.xlsx")
Dim ws As WorkSheet = wb.DefaultWorkSheet
' Bold header row with a blue background and white text
Dim headerRange As Range = ws("A1:H1")
headerRange.Style.Font.Bold = True
headerRange.Style.BackgroundColor = "#4472C4"
headerRange.Style.Font.Color = "#FFFFFF"
' Format the Price column as currency
Dim priceColumn As Range = ws("D2:D100")
priceColumn.Style.NumberFormat = "$#,##0.00"
' Highlight low-stock rows in red
For row As Integer = 2 To 4
Dim stockCell = ws($"E{row}")
If stockCell.IntValue < 10 Then
stockCell.Style.BackgroundColor = "#FF6B6B"
End If
Next
wb.SaveAs("FormattedInventory.xlsx")
Console.WriteLine("FormattedInventory.xlsx saved.")
Bu stil seçenekleri, ham veri dışa aktarımlarını yöneticiye hazır raporlara dönüştürür. Arka plan renkli kalın başlıklar bir görsel hiyerarşi oluşturur. Sayı formatlama para birimi değerlerinin doğru görüntülendiğinden emin olur. Stok seviyelerine göre düşük gibi kritik iş metriklerini koşullu biçimlendirme, dışa aktarılmış Excel tablosunu envanter yönetimi için hemen uygulanabilir hale getirir. Gelişmiş hücre biçimlendirme ve kenar stilleri hakkında daha fazla bilgi edinin ve dışa aktarımlarınızı daha fazla geliştirin.

Koşullu Biçimlendirme Programatik Olarak Nasıl Uygulanır?
IronXL, Excel'in yerleşik özelliğini yansıtan koşullu biçimlendirme kurallarını destekler. Hücre değer eşiklerine, metin eşlemesine veya tarih aralıklarına dayalı kurallar tanımlayabilirsiniz. Bir aralığa kural uygulandığında, Excel veya Google Sheets'te açıldığında dosyanın beklenildiği gibi çalışması için IronXL, ilgili XLSX format meta verilerini yazar.
Bu, dışa aktarılan dosyanın renk kodlu raporlar bekleyen teknik olmayan kullanıcılar tarafından görüntülenecek olması durumunda özellikle yararlıdır.
Veri Dışa Aktarımdan Önce Nasıl Sıralanır ve Filtrelenir?
Excel'e yazmadan önce List<t>'inizi sıralayabilir ve filtreleyebilirsiniz. Standart LINQ kullanarak çalışanları departman ve maaşa göre sıralayabilir veya ürünleri yalnızca aktif öğelere filtreleyebilirsiniz. Filtrelenmiş liste hazır olduğunda, yukarıda gösterilen sütun-sütun yöntemiyle çalışma sayfasına yazın.
IronXL ayrıca, çalışma kitabında zaten doldurulmuş bir aralıkta doğrudan hücre sıralamayı destekler - orijinal koleksiyona geri dönmeden doldurma sonrası sıralamalara izin verir.
Listeler Diğer Dosya Formatlarına Nasıl Dışa Aktarılır?
IronXL, yalnızca XLSX ile sınırlı değildir. Aynı WorkBook nesne, tek bir yöntem değişikliğiyle birkaç formata kaydedilebilir:
- XLSX -- Default modern Excel format:
workbook.SaveAs("output.xlsx") - XLS -- Eski Office sürümleri için eski Excel formatı
- CSV -- Veri hattı uyumluluğu için virgülle ayrılmış değerler
- TSV -- Sekmeyle ayrılmış değerler
CSV formatına dışa aktarırken, her çalışma sayfası ayrı bir CSV dosyası haline gelir. Bu, IronXL'i sadece son kullanıcı raporları için değil, aynı zamanda ETL hatları, veri bilimi araçları veya üçüncü taraf API'leri tarafından tüketilen ara veri dosyaları üretmek için de kullanışlı hale getirir. VeriGridView verilerini dışa aktarma -- Windows Forms uygulamalarında yaygın bir desen -- IronXL gereksiz adaptörler olmadan temiz bir şekilde yerleştirilir.
Büyük Veri Setleri Nasıl Verimli Şekilde Yönetilir?
Binlerce satır dışa aktarılırken, performans bir endişe haline gelir. Aşağıdaki yönergeleri aklınızda bulundurun:
- Önce bir
DataTabledoldurun ve yansıtmadan tek hücre atama yöntemlerini tekrar tekrar çağırmak yerine döngüde satırlar yazın. AutoSizeColumnyalnızca tüm veriler yazıldıktan sonra çağırın, çünkü bu bir okuma-tarama işlemidir.- Yeniden okuma ve yeniden kaydetme için kitabı sıkı bir döngüde açmaktan kaçının -- verinin tamamını bellekte oluşturun ve ardından
SaveAs'i bir kez çağırın. - 100.000'den fazla satır içeren veri setleri için, dışa aktarmayı birden fazla çalışma sayfasına bölmeyi düşünün ve böylece Excel'in satır sayısı limitlerini koruyun ve dosya boyutlarını yönetilebilir tutun.
IronXL ayrıca XLSX dosyasının doğrudan bir MemoryStream'a yazıldığı ve disk G/Ç'sini tamamen atlatarak bir dosya indirme yanıtı olarak döndürüldüğü bir ASP.NET Core dışa aktarma iş akışı sağlar.
ASP.NET Core'da Listeler Nasıl Excel'e Dışa Aktarılır?
Web API'leri veya Razor Pages uygulamaları oluştururken, genellikle Excel dosyasını diske kaydetmek yerine bir HTTP yanıtı olarak döndürmek istersiniz. Aşağıdaki desen, bir denetleyici eyleminden bir FileContentResult döndürür:
Denetleyici, WorkBook oluşturacak, workbook.ToByteArray()'i çağıracak ve ardından MIME türü application/vnd.openxmlformats-officedocument.spreadsheetml.sheet ve Content-Disposition: attachment başlığı ile baytları döndüren bir hizmet enjekte eder. Bu yaklaşım, herhangi bir .NET 10 minimal API veya MVC denetleyicisinde çalışır.
Tam bir yol gösterici için, bir Blazor WebAssembly veya Blazor Sunucu uygulaması oluşturuyorsanız ASP.NET Core Excel dışa aktarma eğitimi ve Blazor dışa aktarma eğitimi bakın.
IronXL ile Bugün Nasıl Başlanır?
IronXL, Excel oluşturma görevini sürdürülebilir koda dönüştürür. API'si, Microsoft Office bağımlılıklarını ortadan kaldırır ve kurumsal gereksinimlere uyan profesyonel sonuçlar sağlar. Kütüphanenin özellik seti, temel liste dışa aktarımlarından karmaşık veri dönüşümlerine kadar biçimlendirme ve stil özelliklerini ele alır.
IronXL'i ayrıca mevcut çalışma kitaplarını okuma, Excel verilerini metin tablosuna dışa aktarma veya özet raporlama için pivot tablolar oluşturma için de kullanabilirsiniz. Yukarıda gösterilen biçimlendirme seçenekleri ile herhangi bir yeteneği eşleştirerek dağıtımdan önce manuel ayar gerektirmeyen hesap tabloları üretebilirsiniz.
IronXL, NuGet üzerinde mevcuttur ve .NET 10, .NET 8 veya .NET Framework 4.6.2+'i hedefleyen herhangi bir projeyle çalışır. IronXL'in okuduğu ve yazdığı XLSX dosya formatının altında yatan Open XML SDK, oluşturulan dosyaların ECMA-376 standardına uygun olduğunu ve herhangi bir OOXML uyumlu uygulamada doğru biçimde açıldığını kanıtlar.
C# listelerini Excel'e dışa aktarmaya hazır mısınız? Şimdi IronXL'i indirin ve liste objelerini .NET uygulamalarınızda Excel'e ne kadar hızlı dönüştürebileceğinizi görün. Üretim dağıtımları için, ihtiyaçlarınızla ölçeklenen esnek lisanslama seçeneklerini keşfedin. Daha fazla öğretici ve örnek için belgelere göz atın.
Sıkça Sorulan Sorular
Bir C# listesini Excel dosyasına nasıl ihraç edebilirim?
IronXL'in ImportData metodunu kullanarak bir C# listesini Excel dosyasına ihraç edebilirsiniz, bu, Office Interop gerektirmeden süreci basitleştirir.
Verileri Excel'e ihraç etmek için neden IronXL kullanmalıyım?
IronXL, geleneksel karmaşıklıkları ortadan kaldırarak ve .NET, .NET Core veya .NET Framework ile kolay entegrasyon sunarak verileri Excel'e ihraç etmek için düzgün bir çözüm sağlar.
IronXL'yi kullanmak için Microsoft Office yüklemem gerekiyor mu?
Hayır, IronXL'in kullanılabilmesi için Microsoft Office yüklü olması gerekmiyor. Bağımsız olarak çalışır, Excel dosyalarını programatik olarak oluşturma ve yönetme imkanı sunar.
IronXL, Excel'e ihraç ederken listelerdeki karmaşık nesneleri yönetebilir mi?
Evet, IronXL hem genel listeleri hem de karmaşık nesneleri yönetebilir, Excel'e çeşitli türde verilerin ihraç edilmesinde esneklik sağlar.
IronXL .NET Core ile uyumlu mu?
Evet, IronXL hem .NET Core hem de .NET ve .NET Framework ile uyumludur, bu da farklı geliştirme ortamları için çok yönlü kılar.
IronXL'in ImportData metodunu kullanmanın avantajı nedir?
ImportData metodu, C# listelerinden Excel'e veri aktarma sürecini basitleştirir, kod karmaşıklığını azaltır ve verimliliği artırır.
IronXL kullanarak profesyonel elektronik tablolar oluşturabilir miyim?
Kesinlikle, IronXL geliştiricilerin List nesnelerini kolayca profesyonel tablolara dönüştürmelerine izin verir ve bu da raporlar, veri paylaşımı veya yedeklemeler için uygundur.
IronXL'i kullanmak için kod örnekleri mevcut mu?
Evet, IronXL belgeleri ve eğitimleri, hem genel listeler hem de karmaşık nesnelerin Excel'e ihraç edilmesi için basit kod örnekleri sağlar.




