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:
Install-Package IronXL.Excel
- 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;
using IronXL;
Imports IronXL
Hepsi 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:
Install-Package CsvHelper -Version 27.2.1
- 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
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
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
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.
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();
' 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
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.csv
5. 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 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 Class
Ana 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" }
};
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 (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 Using
5.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);
}
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 Using
Mevcut 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.
Sıkça Sorulan Sorular
C#'da Excel belgelerini işlemek için CSVWriter alternatifleri nelerdir?
IronXL, C#'da Excel belgelerini işlemek için CSVWriter'a mükemmel bir alternatiftir. Microsoft Excel gerektirmeden XLS, XLSX, CSV ve TSV gibi çeşitli Excel formatlarını okumanıza, düzenlemenize ve dışa aktarmanıza olanak tanır.
Bir .NET kütüphanesi kullanarak bir CSV dosyasını Excel formatına nasıl dönüştürebilirim?
IronXL kullanarak, bir CSV'yi çalışma kitabına yükleyip ardından bir XLSX dosyası olarak kaydederek kolayca Excel formatına dönüştürebilirsiniz. Bu işlem, dosyaları manipüle etmek ve kaydetmek için basit kod komutları içerir.
IronXL, CSVWriter'a göre hangi avantajları sunuyor?
IronXL, CSVWriter'a göre çoklu dosya formatlarını destekleme, Excel formüllerini uygulama yeteneği ve veri sıralama ve stil gibi gelişmiş işlevler gibi birçok avantaj sunar. CSVWriter ise yalnızca CSV dosyalarını işlemekle sınırlıdır.
C# projemde IronXL nasıl kurulur?
Visual Studio'daki NuGet Paket Yöneticisi aracılığıyla IronXL'nizi C# projenize kurabilirsiniz. Alternatif olarak, NuGet paketini indirip veya Geliştirici Komut İstemi üzerinden DLL dosyasını manuel olarak kurabilirsiniz.
IronXL, .NET Core ve Azure ortamlarında kullanılabilir mi?
Evet, IronXL, .NET Core ve Azure gibi birden fazla platformu destekler, bu da farklı ortamlar arasında Excel dosya manipülasyonu gerektiren uygulamaları geliştirmek için çok yönlü bir seçim yapıyor.
CSVWriter kullanılarak bir CSV dosyasına özel sınıf nesneleri yazılabilir mi?
Evet, CSVWriter, bir CSV dosyasına özel sınıf nesnelerinin yazılmasını destekler. CSV dosyaları ile çalışırken verileri verimli bir şekilde yazmak için esnek ve kullanımı kolay bir yaklaşım sağlar.
Ticari uygulamalarda IronXL kullanımı için lisans gereksinimleri nelerdir?
IronXL, ticari kullanım için lisans gerektirir. Geliştirme amaçlı kullanım için ücretsizdir, ancak konuşlandırma ihtiyaçlarına göre, tek projeler veya kurumsal çapta uygulamalar için farklı lisanslar mevcuttur.
IronXL, Excel formüllerini nasıl yönetiyor?
IronXL, elektronik tablolarınızda Excel formüllerini uygulamanıza ve manipüle etmenize olanak tanır, doğrudan C# uygulamalarınız içinde dinamik veri hesaplaması ve analizi için güçlü bir işlevsellik sağlar.
IronXL kullanırken karşılaşılan bazı yaygın sorunlar nelerdir?
IronXL ile yaygın sorunlar, dosya formatı uyumluluğu, veri türü uyumsuzlukları veya kurulum hataları olabilir. Proje referanslarınızın doğru şekilde kurulduğundan ve veri formatlarını doğrulamaya yardımcı olunabilir.
IronXL mevcut bir Excel dosyasına veri ekleyebilir mi?
Evet, IronXL mevcut bir Excel dosyasına veri ekleyebilir. Mevcut bir çalışma kitabını açmanıza, yeni veriler ekleyerek düzenlemenize ve ardından mevcut içeriği overwrite etmeden değişiklikleri kaydetmenize olanak tanır.




