C#'da Liste Nesnesini Excel'e Aktarma
Nesne koleksiyonlarının Excel dosyalarına aktarılması, iş uygulamalarında temel bir gerekliliktir. Raporlar oluştururken, veri içgörüleri paylaşırken veya yedeklemeler için Excel çalışma sayfaları oluştururken, geliştiricilerin List<t> nesnelerini profesyonel elektronik tabloya dönüştürecek güvenilir bir yola ihtiyaçı vardır. IronXL, .NET 10, .NET Core veya .NET Framework üzerinde Excel dosyaları oluşturmanın geleneksel zorluklarını ortadan kaldıran bir çözüm sunar -- sunucuda Microsoft Office gerektirmeden.
Listelerin Excel Dosyalarına Aktarılması Neden Zorlayıcıdır?
Verilerin Excel'e aktarılması için geleneksel yaklaşımlar genellikle MS Excel'in sunucuya kurulmasını gerektiren Microsoft Office Interop içerir ve dağıtım sorunları yaratır. Yansıma kullanılarak hücre hücre doldurma işlemi zaman alıcı ve hata oranı yüksek. IronXL'nın veri aktarma özellikleri, MS Office veya karmaşık yansıma kodu gerektirmeden veri kaynakları ile Excel sütun başlıkları arasındaki akıllı özdeşleştirme ile bu sorunları çözer.
Kütüphane, tür dönüşümünü otomatik olarak yönetir, iç içe nesneleri destekler ve CSV dosyaları ve XLSX dosyaları gibi farklı formatlar arasında veri bütünlüğünü korur. C# Excel operasyonlarını Interop olmadan yürüten geliştiriciler için IronXL, güvenilir Excel oluşturma ve veri aktarım/giriş yeteneklerine ihtiyaç duyan modern .NET projeleri için mükemmel bir seçenektir.
IronXL Nesne Aktarımını Nasıl Basitleştirir?
IronXL, COM kaydı, Office lisansları ve arayüz paketlerini ortadan kaldırır. Bir List<t>'i Excel'e dışa aktardığınızda, kütüphane:
- Nesne özelliklerini doğrudan sütun başlıklarına eşler
- .NET türlerini (
DateTime,decimal,bool) doğru Excel temsilleriyle dönüştürür - Hücre değerleri, aralıkları ve formatlama üzerinde ince ayar kontrolü sağlar
- Çıktıyı tek bir yöntem çağrısıyla XLSX, XLS, CSV ve diğer formatlarda kaydeder
Bu yaklaşım, yüzlerce satır boş kod yazmadan temiz, profesyonel hesap tablosu çıktısı almanızı sağlar. Daha sonra, döngüsel veri iş akışlarını kolaylaştıran bir şekilde Excel'den verileri geri alabilirsiniz.
IronXL Nasıl Kurulur?
IronXL ile başlamak için minimal bir kurulum gereklidir. Kitaplığı NuGet Paket Yöneticisi Konsolu üzerinden yükleyin:
Install-Package IronXL
Install-Package IronXL
Ya da .NET CLI kullanın:
dotnet add package IronXL
dotnet add package IronXL
Kurulumdan sonra, dosyanıza using IronXL; yönergesini ekleyin. Ek ofis bağımlılığı veya çalıştırma zamanı kurulumu gerekmez.
Basit Bir Listeyi Excel'e Nasıl Aktarırsınız?
Aşağıdaki örnek, .NET 10'da tercih edilen stil olan üst düzey ifadeleri kullanarak bir Employee nesneler listesini XLSX dosyasına dışa aktarmayı göstermektedir:
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 örnek, bir List<Employee>'i DataTable'ya dönüştürür, ardından bir IronXL çalışma sayfasına başlıklar ve satırlar yazar. IronXL, int, string ve DateTime gibi veri türlerini otomatik olarak işler, oluşturulan elektronik tablonun temiz formatlanmasını sağlar. Excel kaydetme fonksiyonu her türlü hesap tablo uygulamasında açılmaya hazır bir XLSX dosyası üretir.

Karmaşık İş Nesnelerini Nasıl Aktarırsınız?
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 ayrıntıları içeren Product nesneler listesini oluşturur, ardından her öğe için türetilmiş bir CalculatedValue hesaplar. IronXL, ondalık sayılar, mantıksal değerler ve tarihler gibi veri türlerini işleyerek profesyonel hesap tablosu çıktısını sağlar. Sonuç, ProductInventory.xlsx, iş raporlaması veya analizleri için uygun temizlikte, veri odaklı bir envanter dışa aktarımı sağlar. Bir DataTable'ı Excel'e dışa aktarabilirsiniz aynı zamanda, eğer mevcut kod tabanınız zaten DataTable nesneleri ile çalışıyorsa.

Sütun Genişliği ve Satır Yüksekliği Nasıl Kontrol Edilir?
Veri yazdıktan sonra hesap tablosunun görsel düzenini programatik olarak kontrol edebilirsiniz. IronXL'nin AutoSizeColumn yöntemi, her sütunu içeriğine uyacak şekilde ayarlar. Alternatif olarak, kaydetmeden önce sayfa yapısını ayarlamak için açık sütun genişlikleri belirleyebilir veya satır ve sütunlar ekleyip kaldırabilirsiniz.
Satır yüksekliği için, IronXL, sabit bir piksel yüksekliği ayarlamanıza olanak tanıyan satır seviyesinde özellikler sunar -- bu, çalışma sayfası yazdırılacak veya bir PDF olarak paylaşılacaksa yararlıdır. Tutarlı sütun ve satır boyutlandırması, Excel dosyasının farklı ekran çözünürlüklerinde açıldığında veya farklı ölçeklerde yazdırıldığında okunabilirliği artırır, bu da özellikle dış paydaşlara dağıtılan raporlar için önemlidir.
Profesyonel Biçimlendirme Nasıl Eklenir?
Biçimlendirme, temel ihracatları 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ı açar:
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 ihracatlarını yönetici düzeyine hazır raporlara dönüştürür. Arka plan renkli kalın başlıklar görsel hiyerarşi oluşturur. Sayı biçimlendirme, para birimi değerlerinin doğru görüntülenmesini sağlar. Koşullu biçimlendirme, düşük stok seviyeleri gibi kritik iş metriklerini vurgular, bu da ihraç edilen Excel hesap tablosunu envanter yönetimi için hemen eyleme geçirilebilir hale getirir. İhracatları daha da geliştirmek için ileri düzey hücre biçimlendirme ve kenarlık stilleri hakkında daha fazla bilgi edinebilirsiniz.

Koşullu Biçimlendirme Nasıl Programatik Olarak Uygulanır?
IronXL, Excel'in yerleşik özelliğine ayna tutan koşullu biçimlendirme kurallarını destekler. Hücre değeri eşiklerine, metin eşleşmelerine veya tarih aralıklarına dayanan kurallar tanımlayabilirsiniz. Bir kural bir aralığa uygulandığında, IronXL ilişkili XLSX formatı meta verilerini yazar, bu nedenle dosya, Excel veya Google Sheets'te açıldığında tam olarak beklenildiği gibi davranır.
Bu, özellikle çıkartılan dosyanın düz tablosal veriler yerine renk kodlu raporlar bekleyen teknik olmayan paydaşlar tarafından görüntüleneceği durumlarda özellikle kullanışlıdır.
Veriler Dışa Aktarılmadan Önce Nasıl Sıralanır ve Filtrelenir?
Excel'e yazmadan önce List<t>'i sıralayıp filtreleyebilirsiniz. Standart LINQ kullanarak çalışanları departman ve maaşlarına göre sıralayabilir veya ürünleri yalnızca aktif öğelerle filtreleyebilirsiniz. Filtrelenmiş liste hazır olduğunda, yukarıda gösterilen sütun bazlı yaklaşımı kullanarak çalışma sayfasına yazın.
IronXL ayrıca, zaten doldurulmuş bir aralıktaki hücreleri sıralamayı çalışma kitabı içerisinde doğrudan destekler - kaynak koleksiyona geri dönmeden verilerin doldurulmasından sonra sıralamalar yapmanıza olanak tanır.
Listeleri Diğer Dosya Biçimlerine Nasıl Dışa Aktarırsınız?
IronXL, sadece XLSX ile sınırlı değildir. Aynı WorkBook nesnesi, tek bir yöntem değişikliği ile birkaç formata kaydedilebilir:
- XLSX -- Varsayılan 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ına dönüşür. Bu, IronXL'in yalnızca son kullanıcı raporları için değil, ETL veri hatları, veri bilimi araçları veya üçüncü taraf API'lar tarafından tüketilen ara veri dosyalarını oluşturmak için de yararlı olmasını sağlar. DataGridView verilerini dışa aktarma -- Windows Forms uygulamalarında yaygın bir desen -- için IronXL sorunsuz bir şekilde ek adaptörlere ihtiyaç duymaz.
Geniş Veri Setleri Verimli Bir Şekilde Nasıl Yönetilir?
Binlerce satırı dışa aktarırken, performans bir endişe haline gelir. Aşağıdaki yönergeleri aklınızda bulundurun:
- İlk olarak bir
DataTabledoldurun ve satırları bir döngüde yazın, yansıma yoluyla bireysel hücre-set metodlarını tekrar tekrar çağırmak yerine. - Tüm veri yazıldıktan sonra yalnızca
AutoSizeColumnçağrılmalıdır, çünkü bu bir okuma-tarama işlemidir. - Çalışma kitabını sık bir döngüde tekrar okumak ve tekrar kaydetmek için açmaktan kaçının -- bellekte tam veri setini inşa edin, ardından
SaveAsbir kez çağırın. - 100.000 satırdan fazla veri setleri için Excel'in satır sayısı sınırlamalarını korumak ve dosya boyutlarını yönetilebilir durumda tutmak için dışa aktarmayı birden fazla çalışma sayfasına bölemenizi düşünün.
IronXL ayrıca bir ASP.NET Core dışa aktarma iş akışı sunar, burada XLSX dosyası doğrudan bir MemoryStream'e yazılır ve dosya indirme yanıtı olarak döndürülür, böylece disk I/O tamamen atlanır.
ASP.NET Core'da Excel'e Listeleri Nasıl Dışa Aktarırsınız?
Web API'leri veya Razor Pages uygulamaları oluştururken, Excel dosyasını diskten kaydetmek yerine genellikle bir HTTP yanıtı olarak geri döndürmek istersiniz. Aşağıdaki desen bir denetleyici işlemiyle FileContentResult'i döndürür:
Denetleyici, WorkBook'i oluşturan bir servis enjekte eder, workbook.ToByteArray()'i çağırır, daha sonra application/vnd.openxmlformats-officedocument.spreadsheetml.sheet MIME türü ve bir Content-Disposition: attachment başlığı ile baytları döndürür. Bu yaklaşım, herhangi bir .NET 10 minimal API veya MVC denetleyicisinde çalışır.
Tam bir kılavuz için, ASP.NET Core Excel dışa aktarma kılavuzunu ve bir Blazor WebAssembly veya Blazor Sunucu uygulaması oluşturuyorsanız Blazor dışa aktarma kılavuzunu inceleyin.
Bugün IronXL ile Nasıl Başlarsınız?
IronXL, Excel oluşturma görevini bakımlı koda dönüştürür. API'si, Microsoft Office bağımlılıklarını ortadan kaldırırken, kurumsal gereksinimleri karşılayan profesyonel sonuçlar sunar. Kütüphanenin özellik kümesi, basit liste dışa aktarmalardan stil ve biçimlendirme ile karmaşık veri dönüşümlerine kadar her şeyi ele alır.
IronXL'i ayrıca mevcut çalışma kitaplarını okumak ve düzenlemek, daha fazla işlem için Excel verilerini DataTable'a dışa aktarmak veya özet raporlama için pivot tablolar oluşturmak için de kullanabilirsiniz. Bu yeteneklerden herhangi birini, manuel ayarlamalara gerek kalmadan dağıtım öncesinde dağıtılması gereken elektronik tablolar üretmek için yukarıdaki biçimlendirme seçenekleri ile eşleştirebilirsiniz.
IronXL, NuGet üzerinde mevcuttur ve .NET 10, .NET 8 veya .NET Framework 4.6.2+ hedefleyen herhangi bir proje ile çalışır. Open XML SDK, IronXL'in okuduğu ve yazdığı XLSX dosya formatını temellendirir, bu da üretilen dosyaların ECMA-376 standardına uygun olduğunu ve herhangi bir OOXML-uyumlu uygulamada doğru şekilde açıldığına dair size güven verir.
C# listelerini Excel'e dışa aktarmaya hazır mısınız? IronXL'i şimdi indirin ve .NET uygulamalarınızda liste nesnelerini Excel'e ne kadar hızlı dönüştürebileceğinizi deneyimleyin. Üretim dağıtımları için gereksinimlerinize uygun esnek lisans seçeneklerini keşfedin. Daha fazla kılavuz ve örnekler için belgeleri ziyaret edin.
Sıkça Sorulan Sorular
C# listesini bir Excel dosyasına nasıl aktarabilirim?
C# listesini bir Excel dosyasına aktarmak için IronXL'nin ImportData yöntemini kullanabilirsiniz, bu da süreci Office Interop gerektirmeden basitleştirir.
Verilerin Excel'e aktarımı için neden IronXL kullanmalıyım?
IronXL, geleneksel karmaşıklıkları ortadan kaldırarak .NET, .NET Core veya .NET Framework ile kolay entegrasyon sunarak verilerin Excel'e aktarımı için kolaylaştırılmış bir çözüm sunar.
IronXL'yi kullanmak için Microsoft Office kurulu olmalı mı?
Hayır, IronXL'yi kullanmak için Microsoft Office kurulumu gerekli değildir. Bağımsız çalışır ve Excel dosyalarını programlı olarak oluşturmanıza ve düzenlemenize olanak tanır.
IronXL listelerdeki karmaşık nesneleri Excel'e aktarırken ele alabilir mi?
Evet, IronXL hem genel listeleri hem de karmaşık nesneleri işleme kapasitesine sahiptir, bu da çeşitli veri türlerini Excel'e aktarmada esneklik sağlar.
IronXL, .NET Core ile uyumlu mu?
Evet, IronXL .NET Core'un yanı sıra .NET ve .NET Framework ile uyumludur, bu da farklı gelişim ortamları için çok yönlü olmasını sağlar.
IronXL'nin ImportData yöntemini kullanmanın avantajı nedir?
IronXL'nin ImportData yöntemi, C# listelerinden Excel'e veri transferi sürecini kolaylaştırır, kod karmaşıklığını azaltır ve verimliliği artırır.
IronXL kullanarak profesyonel elektronik tablolar oluşturabilir miyim?
Kesinlikle, IronXL geliştiricilere List nesnelerini kolaylıkla profesyonel e-tablolar haline dönüştürme olanağı tanır, raporlar, veri paylaşımı veya yedekler için uygundur.
IronXL kullanımı için kod örnekleri mevcut mu?
Evet, IronXL belgeleri ve eğitimleri, hem genel listeleri hem de karmaşık nesneleri Excel'e aktarmak için basit kod örnekleri sunar.




