IronXL ile CsvWriter Arasındaki Bir Karşılaştırma
CSV dosyalarıyla çalışmak zorlu bir görev olabilir. Ancak, günümüzde bu görevde yazılımcılara yardımcı olacak birçok kütüphane vardır ve Microsoft Excel'in yüklü olmasına gerek yoktur.
Bu makalede, C# .NET teknolojilerinde program aracılığıyla Microsoft Excel belgeleriyle çalışmanın, CSV formatında veya standart Excel formatında, en popüler iki kütüphane olan IronXL ve CSVWriter kullanarak nasıl yapılacağını tartışacağız ve karşılaştıracağız.
Öncelikle her iki kütüphanenin de neler sunduğuna bir göz atalım.
IronXL Kütüphanesi
IronXL, C# ile Microsoft Excel belgelerini okumayı ve düzenlemeyi kolaylaştıran bir .NET kütüphanesidir. IronXl.Excel, çok çeşitli elektronik tablo formatlarını okumak için bağımsız bir .NET yazılım kütüphanesidir. Microsoft Excel'in yüklü olmasına gerek yoktur, ayrıca Interop'a bağlı da değildir.
IronXL, .NET üzerinde yüksek hızda performansla Excel elektronik tablo dosyalarını okumanıza, düzenlemenize ve oluşturmanıza olanak tanıyan sezgisel bir C# API'dir. IronXL, .NET Core, .NET Framework, Xamarin, Mobil, Linux, macOS ve Azure'u tam olarak destekler.
IronXL, C# için önde gelen .NET core ve .net framework Excel elektronik tablo kütüphanesidir.
IronXL Özellik Seti
- Yükleme, okuma ve düzenleme — XLS/XLSX/CSV/TSV formatlarında
- Kaydetme ve dışa aktarma — XLS/XLSX/CSV/TSV/JSON formatlarına
- Aralıklar — kulanımı kolay WorkSheet ["A1:B10"] biçimi. Aralıkları sezgisel olarak birleştir ve oluştur.
- Sıralama — aralıkları, sütunları ve satırları sıralayın.
- Stil — hücre görsel stilleri, yazı tipi, boyut, arka plan deseni, kenar, 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 objelerini yazmayı destekler.
CsvWriter Özellikleri
- Hızlı: son derece hızlı performans için sınıfları derleme sırasında oluşturur.
- Esnek: yazarken dikkatli, okurken liberal.
- Kullanımı kolay: okuma ve yazma,
GetRecords<t>()veWriteRecords(records)kadar basit. - Yüksek ayarlanabilir
- Linux modu
- Düşük bellek kullanımı
1. Bir Konsol Uygulaması Oluşturun
Bir Konsol Uygulaması oluşturmak için aşağıdaki adımları izleyin:
- Visual Studio 2022 IDE'sini başlatın.
- "Yeni proje oluştur" seçeneğine tıklayın.
- "Yeni proje oluştur" sayfasında, dil açılır listesinde C# seçin, Platformlar listesinden Windows seçin ve "Proje türleri" listesinden Konsol seçin.
- Gösterilen proje şablonlarından Konsol Uygulaması (.NET Framework) seçin.
Proje Oluştur - Konsol Uygulaması
- İleri'ye tıklayın.
- Ek Bilgiler 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
- İşlemi tamamlamak için Oluştur'a tıklayın.
Proje şimdi oluşturuldu ve kütüphaneleri test etmeye neredeyse hazırız. Ancak, proje içine entegre etmeli ve yüklemeliyiz. Önce IronXL'i yükleyelim.
2. IronXL C# Kütüphanesi Kurulumu
IronXL kütüphanesini kullanarak indirebilir ve yükleyebilirsiniz:
- Visual Studio ile NuGet paketleri kullanarak
- NuGet Paketini doğrudan indirin
- DLL ile Manuel Yükleme
Her biri yakın bir şekilde inceleyelim.
2.1. Visual Studio ile NuGet paketlerini Kullanarak
Visual Studio projelerinize NuGet paketlerini yüklemek için NuGet Paket Yöneticisi sağlar. Ona Proje Menüsünden veya Çözüm Gezgini'nde projenize sağ tıklayarak ulaşabilirsiniz.
Seç-Yönet-NuGet-Paketi
- Şimdi, tarama sekmesinden -> IronXl.Excel'i arayın -> Yükleyin.
IronXL'i arayın
- Ve işimiz bitti.
2.2. NuGet Paketini Bir Başına İndirin
Bu, NuGet sitesini direkt ziyaret ederek ve paketi indirerek yapılabilir. Adımlar:
- Navigate tohttps://www.nuget.org/packages/IronXl.Excel
- "Paket İndir" seçin.
- İndirilen pakete çift tıklayın.
- Paket yüklenecektir.
- Visual Studio projenizi yeniden yükleyin ve kullanmaya başlayın.
2.3. DLL ile Manuel Yükleme
IronXL C# Kütüphanesini indirmenin ve kurmanın bir başka yolu daIronXLNuGet paketini Geliştirici Komut İstemcisi aracılığıyla kurmak için aşağıdaki adımları kullanmaktır.
- Geliştirici Komut İstemcisi'ni açın — genellikle Visual Studio klasöründe bulunur.
- Aşağıdaki komutu yazın:
Install-Package IronXl.Excel
- Enter tuşuna basın.
- Bu, paketi indirip yükleyecektir.
- Visual Studio projenizi yeniden yükleyin ve kullanmaya başlayın.
2.4. Gerekli Using Yönergelerini Ekleyin
- Çözüm Gezgini'nde Program.cs dosyasına sağ tıklayın ve ardından Kodu Görüntüle'yi tıklayın.
- Kod dosyasının üstüne aşağıdaki using direktiflerini ekleyin:
using IronXL;
using IronXL;
Imports IronXL
Hepsi tamam! IronXL indirildi, yüklendi ve kullanıma hazır. Ancak, bundan önce CsvHelper'ı yüklemeliyiz.
3. CSVWriter Kurulumu
3.1. NuGet Paket Yöneticisi Konsolu Kullanarak
CSVWriter ile çalışmak için CsvHelper C# Kütüphanesi'ni indirip yüklemeniz gerekir. Bunun için Geliştirici Komut İstemcisi aracılığıyla NuGet paketini kurmak için aşağıdaki adımları kullanın.
- Geliştirici Komut İstemcisi'ni açın — genellikle Visual Studio klasöründe bulunur.
- Aşağıdaki komutu yazın:
Install-Package CsvHelper -Version 27.2.1
- Enter tuşuna basın.
- Bu, paketi indirip yükleyecektir.
- Visual Studio projenizi yeniden yükleyin ve kullanmaya başlayın.
- CsvHelper.CsvWriter yöntemi detayını uygulama için kontrol edin
3.2. Doğrudan İndirme
Download from the NuGet website: https://www.nuget.org/packages/CsvHelper/
4. IronXL kullanarak CSV Dosyalarıyla Çalışma
Bir virgülle ayrılmış değerler (CSV) dosyası, değerleri ayırmak için bir virgül kullanan bir metin dosyasıdır. Dosyanın her satırı bir veri kaydıdır. Bu dosyalar üzerinde hesaplama yapmak zor bir görev olabilir, ancak IronXL bunu başarmak için oldukça iyi ve kolay bir seçenek sunar ve 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 kodla 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. IronXL kullanarak Dönüştürülmüş CSV Dosyalarını Okuma ve Manipülasyon
IronXLWorkBook sınıfı bir Excel sayfasını temsil eder. C# kullanarak bir Excel Dosyası açmak için, WorkBook.Load'u kullanırız ve Excel dosyasının (.xlsx) yolunu belirtiriz. Dosyayı okumak için açmak için kullanılan tek satırlık kod:
// 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çerdiğinde, bunları aşağıdaki gibi adlarıyla 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ükleyip okuduktan sonra, formüllerde değişiklik yapmak veya belirli hücrelere formüller uygulamak için aşağıdaki kod örneği kullanılabilir. Kod şu şekildedir:
// 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 CSV Dosyasına geri kaydetme
CSV dosyalarını yazmak IronXL ile kolay bir süreçtir. Aşağıdaki kod, SaveAsCsv yöntemini kullanarak Excel dosyasını basitçe 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 ile CSV Verileri ile Çalışmak
Verileri bir CSV dosyasına yazmak yaygın bir işlemdir. CSVHelper yöntemi CSVWriter ile verilen ayraç, tüm karakterleri ve yeni satır karakterlerini C# için yayınlanmış oldukça basit bir CSV yazarında ele alır. Burada, CSVWriter kullanarak veri yazmanın nasıl yapıldığını inceleyeceğiz.
5.1. Basit bir Konsol Uygulaması Oluştur
Visual Studio kullanarak verilen ayraçlı basit bir CSVWriter konsol uygulaması oluşturun. Proje oluşturulduktan sonra sıradaki adım bir Kişi sınıfı oluşturmak:
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öntemde, şimdi bir Kişi nesne listesi oluşturalım, 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. C#'ta Varsayılan Ayarlarla CSV Dosyasına Yazma
CsvHelper, CSVWriter yöntemini kullanarak C# içinde CSV yazmanın standart yolu olarak ortaya çıktı ve kullanımı çok 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ğı gerçeğini aklımızda tutmamız gerekiyor. Bazen verilerin mevcut verilerin üzerine yazılmak yerine bir dosyanın sonuna eklenmesini isteriz. CSVWriter, verilen ayraç ile bu işlemi gerçekleştirmek için bir yöntem sunmaz, çünkü bir dosyanın açılması/yazılması CSVWriter'ın sorumluluğu değildir. Bunu bir FileStream kullanarak ve ardından o FileStream'i kullanarak StreamWriter'ımızı oluşturarak gerçekleştirebiliriz. Bu makalenin kapsamına girmiyor olsa da size bunu nasıl yapacağınızı göstereceğim, çünkü bu herhangi bir uygulamanın ayrılmaz bir parçasıdır.
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 veri eklemek zordur çünkü veri eklediğimizde sıralama değişebilir veya yeni özellikler eklemiş olabiliriz. Ek yaparken bunu hesaba katmamız gerektiğinden mutlaka emin olmalıyız.
6. Lisanslama
IronXL is an openly commercial C# Excel library. It is free for development and can always be licensed for commercial deployment.Licenses are availablefor single-project use, single developers, agencies, and global corporations, as well as SaaS and OEM redistribution. Tüm lisanslar 30 günlük para iade garantisi, bir yıl ürün desteği ve güncellemeleri, geliştirme/sahnelenme/üretim için geçerlilik ve ayrıca kalıcı bir lisans (tek seferlik satın alma) içerir. Lite paketi $799'den başlar.
Tedarik edilen ayraç ile CSVWriter, virgülle ayrılmış bir elemandır ve ticaret dostu kullanım için tamamen ücretsizdir.
7. Özet ve Sonuç
Özet
IronXL, bir Excel dosyasını manipüle etmek için gereken her şeyi sunan eksiksiz bir kütüphanedir. Çeşitli formatların XLSX'e, ve aynı şekilde XLSX'den diğer formatlara, örneğin CSV'ye dönüştürülmesine olanak tanır. Bu dönüşüm, kullanıcılara diğer dosya formatlarını kolaylıkla manipüle etme esnekliği sağlar.
Öte yandan, CSVWriter sadece CSV dosya formatlarıyla çalışır ve çok sınırlı seçenekler sunar. Kullanıcılar farklı dosya formatları arasında geçiş yapamazken, IronXL ile geçiş yapabilirler. Tüm kod örnekleri CsvHelper dokümantasyon dosyalarında bulunabilir. Bu belge, projenizde CSVWriter nasıl kullanılır konusunda yönergeler sağlar.
Sonuç
IronXL, birden fazla formatla çalışmayı desteklediği için CSVHelper.CSVWriter karşısında açık bir avantaja sahiptir. Ayrıca, formülleri ve stilleri seçiminize göre uygulayabilirsiniz, .CSVHelper ise yalnızca CSV dosyalarını okumaya ve yazmaya izin verir ve sınırlı seçenekle. Dahası, mevcut bir CSV dosyasına yeni kayıtlar ekleyemezsiniz, çünkü o sadece önceki girişlerin üzerine yazar.
Sıkça Sorulan Sorular
C# içinde Excel belgelerini işlemek için CSVWriter alternatifleri nelerdir?
IronXL, C# içinde Excel belgelerini işlemek için CSVWriter'a mükemmel bir alternatiftir. Microsoft Excel'e ihtiyaç duymadan çeşitli Excel formatlarını okumaya, düzenlemeye ve dışa aktarmaya olanak tanır.
Bir .NET kütüphanesi kullanarak CSV dosyasını Excel formatına nasıl dönüştürürüm?
IronXL kullanarak, bir CSV dosyasını Excel formatına kolayca dönüştürebilirsiniz; CSV'yi bir çalışma kitabına yükleyip ardından XLSX dosyası olarak kaydedebilirsiniz. Bu işlem, dosyaları manipüle etmek ve kaydetmek için basit kod komutları içerir.
IronXL'in CSVWriter'a göre sunduğu avantajlar nelerdir?
IronXL, birden çok dosya formatini destekleme, Excel formulleri uygulama ve veri siralama ve stil verme gibi gelişmiş işlevler dahil olmak uzere CSVWriter'a gore bazi avantajlar sunar. Buna karsilik, CSVWriter sadece CSV dosyalarini isleyebilir.
C# projemde IronXL'i nasil kurarim?
IronXL'i C# projenizde Visual Studio'daki NuGet Paket Yönetici'si araciligiyla kurabilirsiniz. Alternatif olarak, NuGet paketini indirebilir veya Geliştirici Komut İstemi araciligiyla DLL'yi manuel olarak kurabilirsiniz.
IronXL, .NET Core ve Azure ortamlarinda kullanilabilir mi?
Evet, IronXL birden çok platformu, .NET Core ve Azure dahil olmak uzere destekler ve farkli ortamlarda Excel dosyasi işleme gerektiren uygulamalar geliştirmek için çok yonlu bir seçenek sunar.
CSVWriter kullanarak özel sınıf nesnelerini bir CSV dosyasina yazmak mumkun mu?
Evet, CSVWriter özel sınıf nesnelerini bir CSV dosyasina yazmayi destekler. CSV dosyalariyla calisirken veriyi verimli bir şekilde yazmak için esnek ve kolay bir yaklasim sunar.
Ticari uygulamalarda IronXL kullanmak için lisans gereksinimleri nelerdir?
IronXL ticari kullanım için lisans gerektirir. Geliştirme amacli kullanım için ücretsizdir, ancak dağıtim ihtiyaçlarina bagli olarak tek proje veya kurumsal seviyede uygulamalar için farkli lisanslar mevcuttur.
IronXL Excel formullerini nasil isler?
IronXL, Excel elektronik tablonuz icinde Excel formullerini uygulamaniza ve değiştirmenize olanak tanir ve C# uygulamalariniz icinde dinamik veri hesaplama ve analiz için güçlü bir işlevsellik saglar.
IronXL kullanirken karsilasilan yaygin sorun giderme sorunlari nelerdir?
IronXL ile ilgili yaygin sorun giderme problemleri, dosya format uyumlulugu, veri tipi uyumsuzluklari veya yukleme hatalari olabilir. Proje referanslarinin doğru bir şekilde ayarlandigindan emin olmak ve veri formatlarini doğrulamak bu sorunlari cozmeye yardimci olabilir.
IronXL mevcut bir Excel dosyasina veri ekleyebilir mi?
Evet, IronXL mevcut bir Excel dosyasina veri ekleyebilir. Mevcut bir calisma kitabini acmaniza, yeni veri ekleyerek değiştirmenize ve sonra değişiklikleri mevcut icerigi bozmeden kaydetmenize olanak tanir.




