C# CSV Kütüphanesi: IronXL Kullanarak Tam Kılavuz
C# dilinde CSV dosyalarıyla çalışmak, basit satır ayrıştırmanın ötesinde bir kütüphaneye ihtiyaç duyar. Güvenilir kodlama algılama, doğru sınırlayıcı işleme, güçlü tipleme ve ideal olarak CSV ve Excel arasında iki ayrı bağımlılığı sürdürmeden veri taşıyabilme yeteneği gerekir. IronXL, tüm bunları tek bir .NET kütüphanesinde sunar -- Microsoft Office gerekmez, COM etkileşimi yok ve kırılgan çözümler yok. Düz veri dosyalarını bir sunucuda işlerken, bir veri hattı oluştururken veya kullanıcılara bir hesap tablosu sunarken, IronXL size her formata uygun tek bir API sunar.
C# Hesap Tablosu Kütüphanesi Nasıl Kurulur?
IronXL'yi kurmak, NuGet ile bir dakikadan kısa sürer. Visual Studio'da Paket Yöneticisi Konsolunu açın ve aşağıdaki komutu çalıştırın veya herhangi bir terminalden .NET CLI'yi kullanın:
Install-Package IronXL
dotnet add package IronXL
Install-Package IronXL
dotnet add package IronXL
Paket kurulumundan sonra, hesap tablosu verisiyle çalışmak istediğiniz dosyaya isim alanı ekleyin:
using IronXL;
using IronXL;
Imports IronXL
IronXL, .NET Framework 4.6.2+ ve tüm modern .NET sürümlerini (Core, 5, 6, 7, 8, 9 ve 10) hedefler. Windows, Linux ve macOS üzerinde çalışır, bu da onu hem masaüstü araçları hem de konteynerleştirilmiş sunucu yüklerini kapsar hale getirir. IronXL kurulum kılavuzunu paket kaynaklarını ve lisans aktivasyonunu detaylandıran adım adım talimatlar için ziyaret edin.
C# ile CSV Dosyaları Nasıl Okunur?
IronXL ile bir CSV dosyasını okumak, herhangi bir hesap tablosu yüklemeyle aynı desene sahiptir. Dosya yolunu kullanarak WorkBook.Load cagirir ve IronXL uzantidan formati algilar -- ek bir konfigurasiyon gerektirmez:
// Load a CSV file into a WorkBook
WorkBook workBook = WorkBook.Load("sales_data.csv");
// Access the default worksheet
WorkSheet workSheet = workBook.DefaultWorkSheet;
// Read individual cells by Excel-style address
string customerName = workSheet["A2"].StringValue;
decimal orderAmount = workSheet["B2"].DecimalValue;
// Iterate rows, starting at index 1 to skip the header
for (int i = 1; i < workSheet.Rows.Count(); i++)
{
var row = workSheet.Rows[i];
Console.WriteLine($"Customer: {row.Columns[0].Value}, Amount: {row.Columns[1].Value}");
}
// Load a CSV file into a WorkBook
WorkBook workBook = WorkBook.Load("sales_data.csv");
// Access the default worksheet
WorkSheet workSheet = workBook.DefaultWorkSheet;
// Read individual cells by Excel-style address
string customerName = workSheet["A2"].StringValue;
decimal orderAmount = workSheet["B2"].DecimalValue;
// Iterate rows, starting at index 1 to skip the header
for (int i = 1; i < workSheet.Rows.Count(); i++)
{
var row = workSheet.Rows[i];
Console.WriteLine($"Customer: {row.Columns[0].Value}, Amount: {row.Columns[1].Value}");
}
Imports System
' Load a CSV file into a WorkBook
Dim workBook As WorkBook = WorkBook.Load("sales_data.csv")
' Access the default worksheet
Dim workSheet As WorkSheet = workBook.DefaultWorkSheet
' Read individual cells by Excel-style address
Dim customerName As String = workSheet("A2").StringValue
Dim orderAmount As Decimal = workSheet("B2").DecimalValue
' Iterate rows, starting at index 1 to skip the header
For i As Integer = 1 To workSheet.Rows.Count() - 1
Dim row = workSheet.Rows(i)
Console.WriteLine($"Customer: {row.Columns(0).Value}, Amount: {row.Columns(1).Value}")
Next
WorkBook nesnesi tam tablo modelini aciga cikarir. Hücrelere, "A2" gibi tanıdık Excel notasyonu ile ve yerleşik dönüşüm özellikleri -- StringValue, DecimalValue, IntValue, DateTimeValue -- tipi dönüştürmeyi ele alır böylece dizeleri manuel olarak ayrıştırmanıza gerek kalmaz.
Hangi Hücre Adresleme Seçenekleri Mevcuttur?
Tek hücre erişiminin ötesinde, IronXL aralık notasyonu ve satır/sütun yinelemeyi destekler. Bir hücre blokunu, workSheet["A2:C10"] gibi bir aralık ifadesi ile adresleyebilir ve düz bir koleksiyon olarak üzerinde gezinebilirsiniz. Bu, bilinen bir veri bloğunu doğrulamak veya dönüştürmek istediğinizde iç içe döngüler yazmadan işe yarar:
// Access a range and print each value
foreach (var cell in workSheet["A2:C10"])
{
Console.WriteLine($"{cell.AddressString}: {cell.Value}");
}
// Access a range and print each value
foreach (var cell in workSheet["A2:C10"])
{
Console.WriteLine($"{cell.AddressString}: {cell.Value}");
}
' Access a range and print each value
For Each cell In workSheet("A2:C10")
Console.WriteLine($"{cell.AddressString}: {cell.Value}")
Next
Dinamik satır sayıları için workSheet.Rows koleksiyonu yüklenen veriyi otomatik olarak yansıtır, böylece satır sayıları kodda sert bir şekilde belirtilmesine gerek yoktur. Daha fazla desen için C# CSV okuma öğreticisini inceleyin, başlık algılama ve çok kodlamalı dosyalar dahil.
CSV Satırlarını Özel Nesnelere Nasıl Eşlersiniz?
Yaygın bir gereklilik, tablo bazlı CSV verilerini tipli bir koleksiyona dönüştürmektir. Satırları yineleyebilir ve her birini düz bir C# sınıfına projekte edebilirsiniz:
public record SalesRecord(string Customer, decimal Amount, DateTime OrderDate);
WorkBook workBook = WorkBook.Load("sales_data.csv");
WorkSheet workSheet = workBook.DefaultWorkSheet;
var records = new List<SalesRecord>();
// Start at row 1 to skip the header row (row 0)
for (int i = 1; i < workSheet.Rows.Count(); i++)
{
var row = workSheet.Rows[i];
records.Add(new SalesRecord(
Customer: row.Columns[0].StringValue,
Amount: row.Columns[1].DecimalValue,
OrderDate: row.Columns[2].DateTimeValue
));
}
public record SalesRecord(string Customer, decimal Amount, DateTime OrderDate);
WorkBook workBook = WorkBook.Load("sales_data.csv");
WorkSheet workSheet = workBook.DefaultWorkSheet;
var records = new List<SalesRecord>();
// Start at row 1 to skip the header row (row 0)
for (int i = 1; i < workSheet.Rows.Count(); i++)
{
var row = workSheet.Rows[i];
records.Add(new SalesRecord(
Customer: row.Columns[0].StringValue,
Amount: row.Columns[1].DecimalValue,
OrderDate: row.Columns[2].DateTimeValue
));
}
Imports System
Imports System.Collections.Generic
Public Class SalesRecord
Public Property Customer As String
Public Property Amount As Decimal
Public Property OrderDate As DateTime
Public Sub New(customer As String, amount As Decimal, orderDate As DateTime)
Me.Customer = customer
Me.Amount = amount
Me.OrderDate = orderDate
End Sub
End Class
Dim workBook As WorkBook = WorkBook.Load("sales_data.csv")
Dim workSheet As WorkSheet = workBook.DefaultWorkSheet
Dim records As New List(Of SalesRecord)()
' Start at row 1 to skip the header row (row 0)
For i As Integer = 1 To workSheet.Rows.Count() - 1
Dim row = workSheet.Rows(i)
records.Add(New SalesRecord(
Customer:=row.Columns(0).StringValue,
Amount:=row.Columns(1).DecimalValue,
OrderDate:=row.Columns(2).DateTimeValue
))
Next
Bu yöntem, ayrıştırma mantığını iş mantığından temiz bir şekilde ayırır ve uygulamanızın geri kalanı boyunca her kaydı güçlü bir şekilde tipe dayanıklı yapar.

C# ile CSV Dosyaları Nasıl Yazılır?
Sıfırdan bir CSV dosyası oluşturmak üç adımdan oluşur: WorkBook oluşturun, WorkSheet'yi doldurun ve SaveAsCsv çağırın. Süreç, herhangi bir hesap tablosu oluşturmanız durumuyla aynıdır, bu da çıktı formatına bakılmaksızın API'yi tutarlı tutar:
// Create a new workbook and worksheet
WorkBook workBook = WorkBook.Create();
WorkSheet workSheet = workBook.CreateWorkSheet("inventory");
// Write header row
workSheet["A1"].Value = "Product";
workSheet["B1"].Value = "Quantity";
workSheet["C1"].Value = "Price";
// Write data rows
workSheet["A2"].Value = "Widget A";
workSheet["B2"].Value = 250;
workSheet["C2"].Value = 9.99;
workSheet["A3"].Value = "Gadget B";
workSheet["B3"].Value = 120;
workSheet["C3"].Value = 24.50;
// Export to CSV
workBook.SaveAsCsv("inventory.csv");
// Create a new workbook and worksheet
WorkBook workBook = WorkBook.Create();
WorkSheet workSheet = workBook.CreateWorkSheet("inventory");
// Write header row
workSheet["A1"].Value = "Product";
workSheet["B1"].Value = "Quantity";
workSheet["C1"].Value = "Price";
// Write data rows
workSheet["A2"].Value = "Widget A";
workSheet["B2"].Value = 250;
workSheet["C2"].Value = 9.99;
workSheet["A3"].Value = "Gadget B";
workSheet["B3"].Value = 120;
workSheet["C3"].Value = 24.50;
// Export to CSV
workBook.SaveAsCsv("inventory.csv");
' Create a new workbook and worksheet
Dim workBook As WorkBook = WorkBook.Create()
Dim workSheet As WorkSheet = workBook.CreateWorkSheet("inventory")
' Write header row
workSheet("A1").Value = "Product"
workSheet("B1").Value = "Quantity"
workSheet("C1").Value = "Price"
' Write data rows
workSheet("A2").Value = "Widget A"
workSheet("B2").Value = 250
workSheet("C2").Value = 9.99D
workSheet("A3").Value = "Gadget B"
workSheet("B3").Value = 120
workSheet("C3").Value = 24.5D
' Export to CSV
workBook.SaveAsCsv("inventory.csv")
SaveAsCsv, virgüller içeren alanların tırnak içine alınması ve yeni satırların normalleştirilmesi gibi yazım işaretlerini ele alır. Hiçbirini manuel olarak yönetmenize gerek yok. IronXL, ihracat sırasında sayısal türleri korur, bu sayede Excel veya pandas gibi araçlar rakamları sayılar olarak okur, alıntılanmış metin dizeleri olarak değil.
Bir DataTable CSV'ye Nasıl Dışa Aktarılır?
Birçok uygulama veriyi bir DataTable içine bir veri tabanından elde eder. IronXL, bir DataTable'yi bir çalışma sayfasına tek bir çağrıyla yerleştirebilir, bu da toplu dışarı aktarımları kolaylaştırır:
DataTable dataTable = GetProductsFromDatabase();
WorkBook workBook = WorkBook.Create();
WorkSheet workSheet = workBook.CreateWorkSheet("products");
workSheet.InsertDataTable(dataTable, "A1");
workBook.SaveAsCsv("products.csv");
DataTable dataTable = GetProductsFromDatabase();
WorkBook workBook = WorkBook.Create();
WorkSheet workSheet = workBook.CreateWorkSheet("products");
workSheet.InsertDataTable(dataTable, "A1");
workBook.SaveAsCsv("products.csv");
IRON VB CONVERTER ERROR developers@ironsoftware.com
InsertDataTable metodu, DataTable şemasından sütun başlıklarını yazar ve başlangıç adresi verdiğiniz tüm satırları doldurur. Daha büyük veri kümeleri için bu, satırları elle döngüye almak yerine çok daha verimlidir. Özel sınırlayıcılar ve kodlama ayarları dahil seçenekler için CSV'ye dışa aktarma dokümantasyonunu kontrol edin.

C# ile CSV ve Excel Arasında Nasıl Dönüştürülür?
IronXL'nin sağladığı en değerli özelliklerden biri, CSV ve Excel formatları arasında çift yönlü dönüştürmedir. API simetriktir -- Load desteklenen her formatı okur ve Save methodları ailesi hedef formatınıza yazar:
// Convert CSV to Excel
WorkBook csvWorkBook = WorkBook.Load("data.csv");
csvWorkBook.SaveAs("data.xlsx");
// Convert Excel back to CSV
WorkBook xlsxWorkBook = WorkBook.Load("report.xlsx");
xlsxWorkBook.SaveAsCsv("report.csv");
// Convert CSV to Excel
WorkBook csvWorkBook = WorkBook.Load("data.csv");
csvWorkBook.SaveAs("data.xlsx");
// Convert Excel back to CSV
WorkBook xlsxWorkBook = WorkBook.Load("report.xlsx");
xlsxWorkBook.SaveAsCsv("report.csv");
' Convert CSV to Excel
Dim csvWorkBook As WorkBook = WorkBook.Load("data.csv")
csvWorkBook.SaveAs("data.xlsx")
' Convert Excel back to CSV
Dim xlsxWorkBook As WorkBook = WorkBook.Load("report.xlsx")
xlsxWorkBook.SaveAsCsv("report.csv")
Bu dönüşümler veri bütünlüğünü korur. Sayısal değerler sayısal kalır, tarih alanları türlerini korur ve formül sonuçları hesaplanmış değerlerine yazılmadan önce değerlendirilir. Çok sayfalı bir Excel dosyasını CSV'ye dönüştürdüğünüzde, IronXL her çalışma sayfası için ayrı bir CSV dosyası oluşturur:
WorkBook multiSheetWorkBook = WorkBook.Load("quarterly_report.xlsx");
// Produces: quarterly_report.Sheet1.csv, quarterly_report.Sheet2.csv, etc.
multiSheetWorkBook.SaveAsCsv("quarterly_report.csv");
WorkBook multiSheetWorkBook = WorkBook.Load("quarterly_report.xlsx");
// Produces: quarterly_report.Sheet1.csv, quarterly_report.Sheet2.csv, etc.
multiSheetWorkBook.SaveAsCsv("quarterly_report.csv");
Dim multiSheetWorkBook As WorkBook = WorkBook.Load("quarterly_report.xlsx")
' Produces: quarterly_report.Sheet1.csv, quarterly_report.Sheet2.csv, etc.
multiSheetWorkBook.SaveAsCsv("quarterly_report.csv")
Bu davranış, bir dosya başına bir konu beklentisiyle aşağı yönde tüketiciler için raporlama hatları için özellikle yararlıdır. CSV yazma eğitimi sınırlayıcı karakterini belirtmek ve ihraç edilecek sayfaların kontrolü gibi ek seçenekleri kapsar.


Neden Yalnızca CSV Kütüphaneleri Gerçek Projeler İçin Yetersiz Kalır?
Birçok C# geliştiricisi, Microsoft.VisualBasic'den CsvHelper veya TextFieldParser ile başlamaktadır. Her ikisi de yalnızca CSV iş akışları için uygun araçlardır. Aradaki fark, gereksinimler genişlediğinde ortaya çıkar: bir hak sahibi CSV yerine Excel indirmesi ister, finans formüllerin korunmasını ister veya güvenlik politikası parolayla korunan dosyalar gerektirir. Bu noktada, yalnızca CSV kütüphanesi size ikinci bir bağımlılık eklemenizi ve iki ayrı entegrasyon yolunu sürdürmenizi zorlar. Birleştirilmiş bir hesap tablosu kütüphanesi, bu ayrımı baştan ortadan kaldırır.
| Yetkinlik | IronXL | CsvHelper | TextFieldParser |
|---|---|---|---|
| CSV dosyalarını oku | Evet | Evet | Evet |
| CSV dosyalarını yaz | Evet | Evet | Hayır |
| XLSX oku/yaz | Evet | Hayır | Hayır |
| Formül değerlendirme | Evet | Hayır | Hayır |
| Hücre style ve formatlaması | Evet | Hayır | Hayır |
| Parolayla korunan dosyalar | Evet | Hayır | Hayır |
| Ofis bağımlılığı gerekli | Hayır | Hayır | Hayır |
| Çapraz platform (.NET 10) | Evet | Evet | Sınırlı |
Birleşik Bir Kütüphane Ekstra Hesap Tablosu Özellikleri Sunuyor mu?
Format dönüşümünün ötesinde, hem CSV hem de Excel işleten bir kütüphane, projeler büyüdükçe kullanışlı hale gelen hesap tablosu işlemleri sağlar. Özellikle IronXL ile şunları elde edersiniz:
- Formül değerlendirme -- Excel mevcut değilken
=SUM(B2:B10)gibi formülleri hücrelere yazabilir ve hesaplanan sonucu tekrar okuyabilirsiniz. - Hücre ve aralık style -- yazı tipi kalınlıkları, arka plan renkleri, sayı formatları ve kenarlıklar IronXL style API aracılığıyla uygulanır.
- Parola koruması -- şifreli çalışma kitaplarını
WorkBook.Load("secure.xlsx", "password")ile açabilir ve yeni dosyaları şifreleme ile kaydedebilirsiniz. - Tanımlı aralıklar -- Excel'de olduğu gibi tanımlanmış bölgeleri tanımlayın ve referans alın, bu da formül yazmayı ve veri doğrulamayı basitleştirir.
- Büyük dosya desteği -- IronXL, tüm dosyayı belleğe yüklemeden verileri yönetilen kodda işler, bu da bellek kullanımını on binlerce satırlık dosyalar için bile tahmin edilebilir kılar.
IronXL özellikler sayfası desteklenen işlemlerin tam listesini içerir.
IronXL Çapraz Platform Dağıtımlarını Nasıl Ele Alır?
Elektronik tablo kütüphaneleriyle ilgili tekrarlanan bir zorluk, platforma özgü davranıştır. COM interop'a bağlı kütüphaneler yalnızca Windows'da çalışır ve Office'e dış komut gönderen kütüphaneler Office kurulumunu gerektirir. IronXL, yerel bağımlılıkları olmayan tamamen yönetilen koddur, bu nedenle aynı ikili dosya Linux konteynerlerinde, macOS geliştirme makinelerinde ve Windows sunucularında sorunsuz çalışır. Bu, Azure, AWS, Docker veya herhangi bir .NET 10 hedefe dağıtımı kolaylaştırır.
Dapper veya Entity Framework Core gibi araçlarla veri hatları oluşturun geliştiriciler, IronXL'yi serileştirme katmanı olarak doğal bir şekilde kullanabilir -- CSV girişini okuyun, ORM'inizle işleyin, sonuçları XLSX veya CSV olarak dışa aktarın. IronXL lisanslama sayfası ticari kullanım için mevcut lisans katmanlarını açıklar.

Sıradaki Adımlarınız Neler?
IronXL, herhangi bir .NET 10 uygulamasında CSV ve Excel dosyalarını okuma, yazma ve dönüştürme için tek bir, tutarlı API sunar. Temel faydalar açıktır: Office bağımlılığı yok, çapraz platform desteği, hücre değerleri için güçlü tip ataması ve gereksinimler değiştiğinde yalnızca CSV projelerinden tam elektronik tablo işlevselliğine doğrudan bir yol.
Daha derine inmeye hazır olduğunuzda, mevcut projenizle en alakalı konularla başlayın. Öncelikle CSV alım hatlarıyla ilgileniyorsanız, yukarıda yer alan okuma ve eşleme kalıpları gerçek dünya senaryolarının çoğunu halleder. Çıkış gereksinimleriniz değişiklik gösteriyorsa -- bazen alt akış betikleri için CSV, bazen son kullanıcılar için XLSX -- format dönüşümü bölümü, her iki formatı da tek bir kod tabanı ile nasıl sunacağını gösterir.
Raporlama sistemleri veya veri tabanlarindan sonuçlar çıkaran takımlar icin, InsertDataTable yaklaşımı iyi ölçeklenir ve satır başı hücre atama performans yükünü önler. Kullanıcıların Excel'de doğrudan açabileceği raporlar üretmek için hücre stilini eşleştirin.
Devam etmek için bu adımları izleyin:
- NuGet aracılığı ile
Install-Package IronXLveyadotnet add package IronXLkullanarak kütüphaneyi kurun. - İlk CSV dosyanızı yüklemek için IronXL hızlı başlangıç kılavuzunda hızlı başlangıcı izleyin.
- Aynı projede her iki formatı da gerektiğinde CSV to Excel eğitimi ile [format dönüşümünü keşfedin.](https://ironsoftware.com/csharp/excel/how-to/csharp-write-to-csv-file/)
- Gelişmiş hücre işlemleri, formül desteği ve stillendirme için IronXL nesne referansında API referansını inceleyin.
- IronXL deneme lisansı sayfasında ücretsiz deneme başlatın -- kredi kartı gerektirmez, teknik destek içerir.
Diğer Iron Software araçlarıyla beraber seçenekleri değerlendiriyorsanız, IronSoftware ürün paketi PDF oluşturma, barkod okuma, OCR ve daha fazlasını kapsar -- hepsi aynı lisanslama modeli ve destek kanalı ile paylaşılır.
Sıkça Sorulan Sorular
IronXL nedir ve C#'ta CSV dosyaları ile nasıl yardımcı olur?
IronXL, geliştiricilerin CSV dosyalarını sorunsuzca okumasını, yazmasını ve dönüştürmesini sağlayan güçlü bir C# kütüphanesidir. Excel çalışma kitapları için genişletilmiş destek sunar, yüksek performans ve satırların, sütunların ve veri türlerinin tutarlı bir şekilde işlenmesini sağlar.
Neden CsvHelper gibi ücretsiz kütüphaneler yerine IronXL'i kullanmalıyım?
CsvHelper temel CSV işlemleri için harika olsa da, IronXL, Excel çalışma kitabı desteği, geliştirilmiş performans ve sağlam veri türü işleme gibi özelliklerle öne çıkar, daha karmaşık elektronik tablo iş akışları için uygun hale getirir.
IronXL hem CSV hem de Excel formatlarını yönetebilir mi?
Evet, IronXL hem CSV hem de Excel formatlarını verimli bir şekilde yönetmek için tasarlanmıştır ve iki format arasında kolaylıkla dönüştürmenizi sağlar.
IronXL yüksek performanslı veri işleme desteği sunuyor mu?
IronXL, optimal hız ve verimlilikle sorunsuz veri içe ve dışa aktarma süreçlerini sağlamaya yönelik yüksek performans için tasarlanmıştır.
Mevcut elektronik tablo iş akışlarına IronXL'i entegre etmek mümkün mü?
Kesinlikle, IronXL mevcut elektronik tablo iş akışlarıyla sorunsuzca entegre olur ve CSV ve Excel formatlarında veri yönetme yeteneğini artırır.
IronXL’i karmaşık CSV dosya operasyonları için uygun kılan nedir?
IronXL, satırların, sütunların ve veri türlerinin tutarlı bir şekilde işlenmesi gibi güçlü özellikler sunar, bu da karmaşık CSV dosya operasyonlarının temel düzeyden daha fazlasını gerektirdiği işlemler için idealdir.
IronXL ile CSV dosyalarını Excel’e dönüştürebilir miyim?
Evet, IronXL'in temel özelliklerinden biri CSV dosyalarını Excel formatına ve tersine dönüştürme yeteneğidir, böylece veri yönetim süreçlerini kolaylaştırır.
IronXL nasıl güvenilir CSV dosyası işleme sağlıyor?
IronXL, karmaşık veri türleri için destek ve Excel işlevleri ile entegrasyon içeren gelişmiş özellikleri aracılığıyla güvenilir CSV dosyası işlemesi sağlar.
IronXL kullanmanın veri içe/dışa aktarma için faydaları nelerdir?
IronXL, geliştiricilerin zaman ve emek tasarrufu yaparken veri bütünlüğü ve farklı formatlar arasında doğruluğunu garanti ederek sorunsuz veri içe/dışa aktarma süreçleri sunar.
IronXL, C#'ta CSV işlemlerine yeni başlayan geliştiriciler için kolay mıdır?
Evet, IronXL, CSV işlemlerine C#'ta yeni olan geliştiriciler için erişilebilir ve kolay kullanımlı hale getiren kullanıcı dostu özellikler ve basit kod örnekleri ile tasarlanmıştır.




