
IronXL ile CsvWriter Arasındaki Bir Karşılaştırma
CSV dosyaları ile çalışmak zor bir görev olabilir. Bununla birlikte, bugün bu görevi yerine getirmek için geliştiricilere yardımcı olacak birçok kütüphane mevcuttur ve Microsoft Excel'in kurulmasına gerek duyulmaz.
Bu makalede, Microsoft Excel belgeleriyle programlı olarak C# .NET teknolojilerinde, ya CSV formatında ya da standart Excel formatında çalışmanın iki popüler kütüphanesi, IronXL ve CSVWriter ile nasıl yapılacağını tartışıp karşılaştıracağız.
Öncelik olarak her iki kütüphanenin sunduğu olanakları inceleyelim.
IronXL Kütüphanesi
IronXL, Microsoft Excel belgelerini C# ile okuma ve düzenleme işlevini kolaylaştıran bir .NET kütüphanesidir. IronXL.Excel, çeşitli elektronik tablo formatlarını okumak için bağımsız bir .NET yazılım kütüphanesidir. Microsoft Excel'in yüklenmiş olmasını gerektirmez ve Interop'a bağımlı değildir.
IronXL, .NET içinde Excel tablosu dosyalarını okuma, düzenleme ve oluşturma işlemlerini yıldırım hızında performans ile gerçekleştiren sezgisel bir C# API'sidir. IronXL, .NET Core, .NET Framework, Xamarin, Mobile, Linux, macOS ve Azure'u tamamen destekler.
IronXL, C# için öncü bir .NET core ve .NET framework Excel elektronik tablo kütüphanesidir.
IronXL Özellik Seti
- XLS/XLSX/CSV/TSV'den veri yükleme, okuma ve düzenleme
- Kaydetme ve dışa aktarma — XLS/XLSX/CSV/TSV/JSON'a
- Aralıklar — kolay kullanım için Çalışma Sayfası ["A1:B10"] söz dizimi. Aralıkları kolaylıkla birleştirin ve oluşturun.
- Sıralama — aralıklar, sütunlar ve satırları sıralayın.
- Stil — hücre görsel stilleri, yazı tipi, boyut, arka plan deseni, kenarlık, hizalama ve sayı formatları.
CSVWriter
CSV dosyaları yazmak için bir .NET kütüphanesi. Son derece hızlı, esnek ve kullanımı kolay. Özel sınıf nesnelerini yazmayı destekler.
CsvWriter Özellikleri
- Hızlı: son derece hızlı performans için kuvvetli sınıflar derler
- Esnek: yazarken muhafazakâr, okurken liberal
- Kullanımı kolay: okumak ve yazmak,
GetRecords<t>()veWriteRecords(records)kadar basittir - Yüksek derecede yapılandırılabilir
- Linux modu
- Düşük bellek kullanımı
1. Konsol Uygulaması Oluşturun
Konsol Uygulaması oluşturmak için şu adımları kullanın:
- Visual Studio 2022 IDE'yi başlatın.
- "Yeni proje oluştur" üzerine tıklayın.
- "Yeni proje oluştur" sayfasında, dil açılır listesinde C# seçin, Platformlar listesinden Windows ve Proje türleri listesinden Konsol seçin.
- Gösterilen proje şablonlarından Console App (.NET Framework) seçin.

Proje Oluştur - Konsol Uygulaması
- İleri tıklayın.
- Ek Bilgi ekranında kullanmak istediğiniz Çerçeve sürümünü belirtin. Bu örnekte, .NET Framework 4.8 kullanacağız.

Proje Oluştur - .NET Framework
- Süreci tamamlamak için Oluşturu tıklayın.
Proje şimdi oluşturuldu ve kütüphaneleri test etmeye neredeyse hazırız. Ancak, hâlâ bunları yüklememiz ve projeye entegre etmemiz gerekiyor. Önce IronXL'i yükleyelim.
2. IronXL C# Kütüphanesi Kurulumu
IronXL kütüphanesini şu yöntemlerle indirip kurabilirsiniz:
- NuGet paketleri ile Visual Studio'yu kullanarak
- NuGet Paketini doğrudan indirin
- DLL ile Manuel Kurulum
Her birine daha yakından bakalım.
2.1. NuGet paketleriyle Visual Studio Kullanarak
Visual Studio, projelerinizde NuGet paketlerini yüklemek için NuGet Paket Yöneticisi sağlar. Buna Proje Menüsü aracılığıyla veya Çözüm Gezgini'nde projenize sağ tıklayabilirsiniz.

Paket-Yönet-NuGet-Paketi
- Şimdi, arama sekmesinden -> IronXL.Excel'i arayın -> Kur

IronXL'i ara
- Tamamladık.
2.2. NuGet Paketini Doğrudan İndir
Bu, NuGet sitesine doğrudan gidip paketi indirerek yapılabilir. Adımlar şunlardır:
- Navigate to https://www.nuget.org/packages/IronXL.Excel
- "Paket İndir"i seçin
- İndirilen paketi çift tıklayın
- Paket yüklenecek
- Visual Studio projenizi yeniden yükleyin ve kullanmaya başlayın
2.3. DLL ile Manuel Kurulum
IronXL C# Kütüphanesini indirip yüklemenin bir başka yöntemi, Geliştirici Komut İstemi aracılığıyla IronXLNuGet paketini yüklemek için aşağıdaki adımları kullanmaktır.
- Geliştirici Komut İstemini açın — genellikle Visual Studio klasöründe bulunur.
- Aşağıdaki komutu yazın:
- Enter'a basın
- Bu, paketi indirecek ve kuracaktır
- Visual Studio projenizi yeniden yükleyin ve kullanmaya başlayın
2.4. Gerekli Using Direktiflerini Ekleyin
- Çözüm Gezgini'nde Program.cs dosyasını sağ tıklayın ve ardından Kodu Görüntüle'yi tıklayın.
- Kodu dosyasının üstüne aşağıdaki using direktiflerini ekleyin:
using IronXL;Imports IronXLHepsi tamam! IronXL indirildi, kuruldu ve kullanıma hazır. Ancak, bundan önce CsvHelper'ı kurmalıyız.
3. CSVWriter Kurulumu
3.1. NuGet Paket Yöneticisi Konsolunu Kullanarak
CSVWriter ile çalışmak için CsvHelper C# Kütüphanesini indirip kurmanız gerekir. Bunu yapmak için, NuGet paketini Developer Command Prompt üzerinden yüklemek üzere aşağıdaki adımları kullanın.
- Geliştirici Komut İstemini açın — genellikle Visual Studio klasöründe bulunur.
- Aşağıdaki komutu yazın:
- Enter'a basın
- Bu, paketi indirecek ve kuracaktır
- Visual Studio projenizi yeniden yükleyin ve kullanmaya başlayın
- Uygulama için CsvHelper.CsvWriter yöntem detayını kontrol edin
3.2. Doğrudan İndirme
NuGet web sitesinden indir: https://www.nuget.org/packages/CsvHelper/
4. IronXL Kullanarak CSV Dosyaları ile Çalışma
Virgülle ayrılmış değerler (CSV) dosyası, değerleri ayırmak için virgül kullanan sınırlı bir metin dosyasıdır. Dosyanın her satırı bir veri kaydıdır. Bu dosyalarla hesaplamalar yapmak zor bir görev olabilir, ancak IronXL, bunu iyi ve kolay bir şekilde elde etmek için harika bir seçenek sunar, hem de Microsoft Excel kullanmadan. Öncelikle bir CSV dosyasını normal bir Excel dosyasına dönüştürelim.
4.1. Bir CSV Dosyasını Excel Formatına Dönüştürme
Süreç oldukça basit ve kolaydır. Genellikle bir satır kod ile yapılır.
CSV'den Excel formatlarına:
// Load the CSV file and specify the format and delimiter
WorkBook workbook = WorkBook.LoadCSV("test.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ",");
// Get the default worksheet
WorkSheet ws = workbook.DefaultWorkSheet;
// Save the workbook as an Excel file
workbook.SaveAs("CsvToExcelConversion.xlsx");' Load the CSV file and specify the format and delimiter
Dim workbook As WorkBook = WorkBook.LoadCSV("test.csv", fileFormat:= ExcelFileFormat.XLSX, ListDelimiter:= ",")
' Get the default worksheet
Dim ws As WorkSheet = workbook.DefaultWorkSheet
' Save the workbook as an Excel file
workbook.SaveAs("CsvToExcelConversion.xlsx")4.2. Dönüştürülmüş CSV Dosyalarını IronXL Kullanarak Okuma ve İşleme
IronXL WorkBook sınıfı bir Excel sayfasını temsil eder. Bir Excel Dosyasını C# kullanarak açmak için WorkBook.Load kullanırız ve Excel dosyasının (.xlsx) yolunu belirleriz. Dosyayı okumak için kullanıldığı basit bir satırlık kod aşağıdadır:
// Load WorkBook
var workbook = WorkBook.Load(@"Spreadsheets\\sample.xlsx");' Load WorkBook
Dim workbook = WorkBook.Load("Spreadsheets\\sample.xlsx")Her WorkBook birden fazla WorkSheet nesnesi içerebilir. Bunlar, Excel belgesindeki çalışma sayfalarını temsil eder. Çalışma kitabı çalışma sayfaları içeriyorsa, onları şu şekilde adlarına göre alabilirsiniz:
// Open Sheet for reading
var worksheet = workbook.GetWorkSheet("sheetnamegoeshere");' Open Sheet for reading
Dim worksheet = workbook.GetWorkSheet("sheetnamegoeshere")Hücre değerlerini okuma kodu:
// Read from Ranges of cells elegantly.
foreach (var cell in worksheet["A2:A10"])
{
Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text);
}' Read from Ranges of cells elegantly.
For Each cell In worksheet("A2:A10")
Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text)
Next cellÇalışma kitabını ve çalışma sayfasını yükledikten ve okuduktan sonra, aşağıdaki kod örneği, formülleri değiştirmek veya belirli hücrelere formül uygulamak için kullanılabilir. Kod şöyle devam ediyor:
// Set Formulas
worksheet["A1"].Formula = "Sum(B8:C12)";
worksheet["B8"].Formula = "=C9/C11";
worksheet["G30"].Formula = "Max(C3:C7)";
// Force recalculate all formula values in all sheets.
workbook.EvaluateAll();' Set Formulas
worksheet("A1").Formula = "Sum(B8:C12)"
worksheet("B8").Formula = "=C9/C11"
worksheet("G30").Formula = "Max(C3:C7)"
' Force recalculate all formula values in all sheets.
workbook.EvaluateAll()4.3. Excel belgesini tekrar CSV Dosyasına Kaydetme
IronXL ile CSV dosyaları yazmak kolay bir süreçtir. Aşağıdaki kod, sadece SaveAsCsv metodunu kullanarak Excel dosyasını CSV formatında kaydeder.
// Load the workbook
WorkBook wb = WorkBook.Load("Normal_Excel_File.xlsx");
// Save as .csv file
wb.SaveAsCsv("SaveAsCSV.csv", ",");
// Saved as : SaveAsCSV.Sheet1.csv' Load the workbook
Dim wb As WorkBook = WorkBook.Load("Normal_Excel_File.xlsx")
' Save as .csv file
wb.SaveAsCsv("SaveAsCSV.csv", ",")
' Saved as : SaveAsCSV.Sheet1.csv5. CSVWriter Kullanarak CSV Verileriyle Çalışma
Verileri bir CSV dosyasına yazmak yaygın bir işlemdir. CSVWriter yöntemi ile sağlanan ayırıcı, C# için yayınlanan çok basit bir CSV yazarında tüm karakterleri ve yeni satır karakterlerini işler. Burada CSVWriter kullanarak nasıl veri yazılacağını inceleyeceğiz.
5.1. Basit Bir Konsol Uygulaması Oluşturma
Visual Studio kullanarak sağlanan ayırıcı ile basit bir CSVWriter konsol uygulaması oluşturun. Proje oluşturulduktan sonra, bir Kişi sınıfı oluşturmanın bir sonraki adımıdır:
public class Person
{
public int Id { get; set; }
public string Name { get; set; }
public bool IsLiving { get; set; }
}Public Class Person
Public Property Id() As Integer
Public Property Name() As String
Public Property IsLiving() As Boolean
End ClassAna yöntem içinde, şimdi bir Kişi nesneleri listesi oluşturalım ve bunu CSV dosyasına yazacağız:
var myPersonObjects = new List<Person>()
{
new Person { Id = 1, IsLiving = true, Name = "John" },
new Person { Id = 2, IsLiving = true, Name = "Steve" },
new Person { Id = 3, IsLiving = true, Name = "James" }
};Dim myPersonObjects = New List(Of Person)() From {
New Person With {
.Id = 1,
.IsLiving = True,
.Name = "John"
},
New Person With {
.Id = 2,
.IsLiving = True,
.Name = "Steve"
},
New Person With {
.Id = 3,
.IsLiving = True,
.Name = "James"
}
}5.2. Varsayılan Ayarlarla C# ile Bir CSV Dosyasına Yazma
CsvHelper, CSVWriter yöntemi ile C#'da CSV yazmanın standart bir yolu haline gelmiştir ve kullanımı oldukça kolaydır:
using (var writer = new StreamWriter("filePersons.csv"))
using (var csv = new CsvWriter(writer, CultureInfo.InvariantCulture))
{
csv.WriteRecords(myPersonObjects);
}Using writer = New StreamWriter("filePersons.csv")
Using csv = New CsvWriter(writer, CultureInfo.InvariantCulture)
csv.WriteRecords(myPersonObjects)
End Using
End Using5.3. Veri Eklemek
Programımızı her çalıştırdığımızda, eski CSV dosyalarının üzerine yazılacağını unutmamamız gerekir. Bazen mevcut verilerin üzerine yazmak yerine dosyanın sonuna veri eklemek isteyebiliriz. CSVWriter, sağlanan ayırıcı ile bir dosya açma/yazma sorumluluğunda olmadığından bunun için bir yöntem sağlamaz. Bunu bir FileStream kullanarak gerçekleştirebiliriz ve ardından bu FileStream kullanarak StreamWriter'ımızı oluşturabiliriz. Bu makalenin kapsamına girmese de, herhangi bir uygulamanın ayrılmaz bir parçası olduğundan bunu nasıl yapacağınızı göstereceğim.
var configPersons = new CsvConfiguration(CultureInfo.InvariantCulture)
{
HasHeaderRecord = false
};
using (var stream = File.Open("filePersons.csv", FileMode.Append))
using (var writer = new StreamWriter(stream))
using (var csv = new CsvWriter(writer, configPersons))
{
csv.WriteRecords(myPersonObjects);
}Dim configPersons = New CsvConfiguration(CultureInfo.InvariantCulture) With {.HasHeaderRecord = False}
Using stream = File.Open("filePersons.csv", FileMode.Append)
Using writer = New StreamWriter(stream)
Using csv = New CsvWriter(writer, configPersons)
csv.WriteRecords(myPersonObjects)
End Using
End Using
End UsingMevcut bir dosyaya ekleme yapmak zordur, ancak ekleme yaptığımızda sıralama değişebilir veya yeni özellikler eklenmiş olabilir. Eklemeler yaparken bunu göz önünde bulundurduğumuzdan emin olmalıyız.
6. Lisanslama
IronXL, C# Excel kütüphanesi olan açık ticari bir üründür. Geliştirme için ücretsiz olup, ticari dağıtım için her zaman lisanslanabilir. Lisanslar tek proje kullanımı, tek geliştiriciler, ajanslar ve global şirketler için, ayrıca SaaS ve OEM yeniden dağıtımı için mevcuttur. Tüm lisanslar, 30 günlük para iade garantisi, bir yıllık ürün desteği ve güncellemeleri, geliştirici/staging/üretim için geçerliliği ve ayrıca kalıcı bir lisans (tek seferlik satın alma) içerir. Lite paketi $999 ile başlar.
CSVWriter, sağlanan ayırıcı ile virgülle ayrılmış bir gerçek ve ticari dostu kullanım için tamamen ücretsizdir.
7. Özet ve Sonuç
Özet
IronXL, bir Excel dosyasını işlemek için gereken her şeyi sağlayan kapsamlı bir kütüphanedir. Kullanımı kolaydır ve çeşitli formatları XLSX'ye, ve XLSX'den diğer formatlara, örneğin CSV'ye dönüştürme olanağı sağlar. Dönüşüm, kullanıcıların diğer dosya formatlarını da kolayca işleyebilmesini sağlar.
Diğer taraftan, CSVWriter yalnızca CSV dosya formatlarıyla çalışır ve çok sınırlı seçeneklere sahiptir. Kullanıcılar farklı dosya formatları arasında geçiş yapamazken, IronXL ile yapabilirler. Tüm kod örnekleri CsvHelper dökümantasyon dosyalarında bulunabilir. Bu belge, projeinizde CSVWriter'ı nasıl kullanacağınıza dair yönergeler sağlar.
Sonuç
IronXL, birden fazla formatla çalışma desteği sunduğundan CsvHelper.CSVWriter'a göre açık bir avantaja sahiptir. Dahası, formülleri ve stilleri istediğiniz gibi uygulayabilirken, CsvHelper sadece CSV dosyalarını okumayı ve yazmayı sağlar ve sınırlı seçeneklerle. Ayrıca, mevcut bir CSV dosyasına yeni kayıtlar ekleyemezsiniz, çünkü sadece önceki girişlerin üzerine yazar.

Curtis Chau, Bilgisayar Bilimleri alanında Lisans Derecesine (Carleton Üniversitesi) sahip ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirmeyle ilgileniyor. Sezgisel ve estetik açıdan hoş kullanıcı arayüzleri oluşturma tutkunu, Curtis modern çerçevelerle çalışmayı ve iyi yapılandırılmış, görsel olarak çekici kılavuzlar oluşturmayı seviyor.
İlgili Makaleler



