Altbilgi içeriğine atla
IRONXL KULLANARAK

Veri İşlemeyi IronXL ile bir C# CSV Ayrıştırıcı Kullanarak Kolaylaştırın (Kılavuz)

CSV (Virgülle Ayrılmış Değerler) dosyaları, uygulamalar, veritabanları ve sistemler arasında veri alışverişinin en yaygın kullanılan formatlarından biri olmaya devam ediyor. Göründükleri kadar basit olsa da, C# dilinde CSV dosyalarını doğru bir şekilde ayrıştırmak hızla zorlayıcı bir sorun haline gelebilir. Virgüller içeren alıntılanan alanların işlenmesinden veri hücrelerinde satır sonları yönetimine kadar, CSV işleme incelikleri basit dize manipülasyonundan daha fazlasını gerektirir.

Birçok geliştirici basit bir string.Split(',') yaklaşımıyla başlar, ancak gerçek dünya CSV dosyalarının bu temel uygulamaları birçok yönden bozulduğunu keşfeder. Büyük veri kümelerini birden fazla sütunla işlerken performans sorunları ortaya çıkar, bellek tüketimi artar ve yanlış senaryolar çözümlemesi zor veri bozulmasına neden olur. Bu zorluklar, her senaryoyu doğru bir şekilde ele almayan özel CSV ayırma kodu yazmak ve bakımını yapmak için harcanan sayısız saate yol açar.

IronXL, CSV işlemeyi bir hayal kırıklığı kaynağından güvenilir bir operasyona dönüştüren bir çözüm sunar. Tam bir Excel kütüphanesi for .NET olarak IronXL, CSV ayrıştırmanın karmaşıklıklarını yönetirken, Excel formatlarıyla entegrasyon sağlar, bu da birden çok veri formatı ile çalışan uygulamalar için idealdir. Müşteri verilerini ithal etmek, finansal kayıtları işlemek veya envanter dosyalarını yönetmek olsun, IronXL'nin C# CSV kütüphane ayrıştırıcısı, özel uygulamalarda sıkça görülen tuzakları ortadan kaldırır.

IronXL ana sayfası, Microsoft Office ara bağımlılıkları olmadan Excel dosyalarının nasıl okunacağını gösteren C# kod örneği

C# Dilinde CSV Ayrıştırmayı Zorlaştıran Nedir?

CSV dosyalarının aldatıcı basitliği, gerçek dünya verilerini işlerken ortaya çıkan birçok zorluğu gizler. Format basit görünse da -- virgülle ayrılmış değerler --, gerçeklik, temel ayrıştırma yaklaşımlarını rayından çıkarabilecek performans ve birden fazla özel durumu ele alma gerektirir. Stack Overflow üzerindeki tartışmalara göre, deneyimli geliştiriciler bile doğru CSV işlemi ile mücadele eder. Microsoft .NET dosya giriş/çıkış dökümantasyonu, üretime hazır bir CSV ayrıştırıcıyı sıfırdan inşa etmenin neden önemli bir görev olduğunu gösteren temel ilkel verileri sağlıyor.

Temel Dize Bölünmesi Neden Başarısız Olur?

Bir CSV dosyasını ayırmak için en yaygın başlangıç yaklaşımını düşünün:

string line = "John,Doe,30,Engineer";
string[] values = line.Split(','); // string array
string line = "John,Doe,30,Engineer";
string[] values = line.Split(','); // string array
Dim line As String = "John,Doe,30,Engineer"
Dim values As String() = line.Split(","c) ' string array
$vbLabelText   $csharpLabel

Bu, basit örneklerde mükemmel çalışır, ancak gerçek dünya verileriyle karşılaştığında hemen başarısız olur. Gömülü virgüllere sahip tırnak içindeki alanlar büyük bir sorundur: "Smith, John",Developer,"New York, NY",50000 gibi bir CSV satırı, veri yapısını bozarak ve sonraki işlemlerde yanlış hizalamaya neden olarak dört yerine beş alana ayrılır.

Alan içindeki satır sonları da sorun yaratır. RFC 4180'a göre, alanlar uygun şekilde alıntılandığında satır sonları içerebilir. Çok satırlı adrese sahip bir alan, herhangi bir satır satır okuma yaklaşımını bozar ve alıntılanmış bir alanda satır sonunun oluşup oluşmadığını veya yeni bir kaydı temsil edip etmediğini izlemek için sofistike durum yönetimi gerektirir.

Kaçış karakterleri ve alıntı işlemeleri daha fazla soruna yol açar. CSV dosyaları, alıntılanan alanlardaki alıntıları kaçmak için çeşitli sözleşmeler kullanır. Bazıları çift tırnak ( "") kullanırken, diğerleri ters eğik çizgi veya diğer kaçış karakterlerini kullanır. Doğru bir biçimde işlenmezse, "She said, ""Hello!""",greeting gibi veriler bozulur veya ayrıştırma hatalarına neden olur.

Farklı ayraçlar ve kodlamalar daha fazla karmaşıklık ekler. Tüm "CSV" dosyaları virgül kullanmaz. Tab ayrılmış değerler (TSV), boru ile ayrılmış dosyalar ve noktalı virgül ile ayrılmış değerler yaygın varyasyonlardır. RFC 4180 standardı, CSV formatı spesifikasyonlarını tanımlar ancak birçok uygulama bundan sapar.

Hafıza Yönetimi Büyük Dosya İşleme Nasıl Etkiler?

500MB'lik bir CSV dosyasını tamamen File.ReadAllLines() kullanarak belleğe yüklemek, önemli bir performans bozulmasına veya bellek yetersizliği istisnalarına yol açabilir. Milyonlarca satırı işlemek, uygulama yanıtlamasını sürdürmek için akış yaklaşımlarını ve etkili hafıza yönetimini gerektirir.

Bu karmaşıklıklar, farklı konvansiyonlar kullanan farklı kaynaklardan gelen CSV dosyaları ile uğraşırken karmaşıklaşır. Tüm senaryoları güvenilir bir şekilde işleyen bir ayrıştırıcı inşa etmek, yeni köşe durumlar çıktıkça önemli bir gelişim çabası ve sürekli bakım gerektirir.

IronXL CSV İşlemini Nasıl Yönetir?

IronXL, gerçek dünya CSV karmaşıklıklarını yönetirken kullanım kolaylığını koruyan bir ayrıştırıcı sağlar. Geliştiricilere tekerleği yeniden icat etme zorunda bırakmaktansa, IronXL yaygın CSV zorluklarının her birini ele alan sezgisel bir API sağlar.

Ayrıştırıcının zeki motoru, alıntılanan alanlar, yerleşik ayraçlar ve verilerdeki satır sonlarını otomatik olarak algılar ve işler. Motor, dosyalar sıkı RFC 4180 standartlarına uyuyorsa veya yaygın varyasyonlar kullanıyorsa doğru yorumlayarak farklı CSV lehçelerine uyum sağlar, manuel yapılandırma gerektirmez.

Esnek ayraç desteği mevcut. Virgüller varsayılan kalsa da, IronXL basit yapılandırma seçenekleri aracılığıyla herhangi bir ayraç karakterini işler. Tab ile ayrılmış dosyalarla, boru ile ayrılmış ihracatlarla veya noktalı virgülle ayrılmış Avrupa formatları ile çalışıyorsanız, aynı API tüm varyasyonları tutarlı bir şekilde işler.

Excel entegrasyonu bir başka güçlü özelliktir. Bağımsız CSV ayrıştırıcıların aksine, IronXL CSV ve Excel formatları arasında iki yönlü dönüştürme sağlar. Bu yetenek, CSV veri ithalatının Excel çalışma kitaplarına, gelişmiş biçimlendirme, formül uygulama ve grafik üretimi için olanak tanıyan iş akışlarını sağlar -- hepsi programatik olarak C# kodu aracılığıyla.

Çapraz Platform Desteği diyagramı, çeşitli platformlar ve dağıtım ortamlarını temsil eden simgelerle, .NET sürümleri 9, 8, 7, 6, Core, Standard ve Framework ile C#, F# ve VB.NET uyumluluğunu göstermektedir.

CSV Ayırtmak için IronXL Nasıl Yüklenir?

IronXL yüklemek sadece birkaç basit adım gerektirir. Kütüphane, Microsoft'un paket yönetim sistemi NuGet aracılığıyla herhangi bir .NET projesine entegre olur. Detaylı kurulum talimatları için IronXL NuGet kurulum kılavuzunu ziyaret edebilirsiniz.

Kurulum Adımları Nelerdir?

IronXL'yi, NuGet Paket Yöneticisi Konsolu veya .NET CLI aracılığıyla yükleyin:

# NuGet Package Manager Console
Install-Package IronXl.Excel

# .NET CLI
dotnet add package IronXl.Excel
# NuGet Package Manager Console
Install-Package IronXl.Excel

# .NET CLI
dotnet add package IronXl.Excel
SHELL

Lisans ayarları için IronXL'yi satın almadan önce tam olarak değerlendirmek için bir deneme lisansı edinebilirsiniz.

İlk CSV Dosyanızı Nasıl Yüklersiniz?

Yüklendikten sonra, C# dosyalarınıza IronXL ad uzayını ekleyin ve sadece birkaç satır kodla bir CSV yükleyin:

using IronXL;

// Load a CSV file using top-level statements
WorkBook workbook = WorkBook.LoadCSV("customers.csv");
WorkSheet sheet = workbook.DefaultWorkSheet;

// Read a specific cell value
string customerName = sheet["B2"].StringValue;
Console.WriteLine($"Customer: {customerName}");
using IronXL;

// Load a CSV file using top-level statements
WorkBook workbook = WorkBook.LoadCSV("customers.csv");
WorkSheet sheet = workbook.DefaultWorkSheet;

// Read a specific cell value
string customerName = sheet["B2"].StringValue;
Console.WriteLine($"Customer: {customerName}");
Imports IronXL

' Load a CSV file using top-level statements
Dim workbook As WorkBook = WorkBook.LoadCSV("customers.csv")
Dim sheet As WorkSheet = workbook.DefaultWorkSheet

' Read a specific cell value
Dim customerName As String = sheet("B2").StringValue
Console.WriteLine($"Customer: {customerName}")
$vbLabelText   $csharpLabel

WorkBook.LoadCSV() yöntemi, sınırlayıcıları otomatik olarak algılama ve tırnaklı alanları işleme özelliği ile CSV dosyasını akıllıca ayrıştırır. CSV dosyaları tek sayfa içerdiğinden, verilere DefaultWorkSheet üzerinden erişilir. Türetilmiş alıcı StringValue, tür güvenli değer alımını sağlar.

Girdi

MüşteriID, Adı, Soyadı, E-posta, Şehir ve Ülke sütunları olan ve örnek müşteri verilerini içeren 10 satırlık bir müşteri veritabanı gösteren Excel elektronik tablosu

Çıktı

'Müşteri: Emily' metni görüntülenerek Çıkış gösteren Visual Studio hata ayıklama konsolu

IronXL ile CSV Dosyalarını Nasıl Okursunuz?

IronXL ile CSV dosyalarını okumak, basit veri çıkarımından karmaşık işleme akışlarına kadar farklı senaryolar için çeşitli yaklaşımlar sunar. IronXL özellikleri sayfası tüm yeteneklerin tam bir özetini sunarken, çalışma kitabı açma rehberi çalışma kitabı işlemlerini derinlemesine kapsar.

Kullanıcı Çalışma Sayfası Manipülasyon Kütüphanesi'nin altı ana kategori gösteren özellik genel görünümü: Oluşturma, Kaydetme ve Dışa Aktarma, Çalışma Kitaplarını Düzenleme, Verilerle Çalışma, Çalışma Kitaplarınızı Güvenceye Alma ve Hücrelerle Çalışma

CSV Satırları Nasıl Yineleyeceksiniz?

En doğrudan yaklaşım, tüm satırları arka arkaya tekrarlayan varsayılan ayarlara sahip LoadCSV kullanır:

using IronXL;

WorkBook workbook = WorkBook.LoadCSV("sales_data.csv");
WorkSheet sheet = workbook.DefaultWorkSheet;

// Iterate through all data rows (skipping header at row 0)
for (var row = 1; row <= sheet.RowCount; row++)
{
    string productName = sheet[$"A{row}"].StringValue;
    decimal price = sheet[$"B{row}"].DecimalValue;
    int quantity = sheet[$"C{row}"].IntValue;
    Console.WriteLine($"Product: {productName}, Price: ${price}, Qty: {quantity}");
}
using IronXL;

WorkBook workbook = WorkBook.LoadCSV("sales_data.csv");
WorkSheet sheet = workbook.DefaultWorkSheet;

// Iterate through all data rows (skipping header at row 0)
for (var row = 1; row <= sheet.RowCount; row++)
{
    string productName = sheet[$"A{row}"].StringValue;
    decimal price = sheet[$"B{row}"].DecimalValue;
    int quantity = sheet[$"C{row}"].IntValue;
    Console.WriteLine($"Product: {productName}, Price: ${price}, Qty: {quantity}");
}
Imports IronXL

Dim workbook As WorkBook = WorkBook.LoadCSV("sales_data.csv")
Dim sheet As WorkSheet = workbook.DefaultWorkSheet

' Iterate through all data rows (skipping header at row 0)
For row As Integer = 1 To sheet.RowCount
    Dim productName As String = sheet($"A{row}").StringValue
    Dim price As Decimal = sheet($"B{row}").DecimalValue
    Dim quantity As Integer = sheet($"C{row}").IntValue
    Console.WriteLine($"Product: {productName}, Price: ${price}, Qty: {quantity}")
Next row
$vbLabelText   $csharpLabel

IronXL'nin yazılmış erişimcileri metni uygun .NET türlerine otomatik olarak dönüştürür, elle ayrıştırmayı ortadan kaldırır. Döngü, dosyadaki toplam veri satır sayısını doğru bir şekilde yansıtan RowCount kullanarak tüm satırlarda devam eder.

Standart Dışı Ayraçları Nasıl Ele Alaçaksınız?

Standart olmayan sınırlayıcılara sahip CSV dosyaları için IronXL, listDelimiter parametresi ile yapılandırma seçenekleri sunar:

using IronXL;

// Load a tab-separated file
WorkBook workbook = WorkBook.LoadCSV("inventory.tsv",
    fileFormat: ExcelFileFormat.XLSX,
    listDelimiter: "\t");
WorkSheet sheet = workbook.DefaultWorkSheet;

// Build header list from column 0
var headers = new List<string>();
for (int col = 0; col < sheet.ColumnCount; col++)
{
    headers.Add(sheet.GetCellAt(0, col).StringValue);
}
Console.WriteLine("Columns: " + string.Join(" | ", headers));
using IronXL;

// Load a tab-separated file
WorkBook workbook = WorkBook.LoadCSV("inventory.tsv",
    fileFormat: ExcelFileFormat.XLSX,
    listDelimiter: "\t");
WorkSheet sheet = workbook.DefaultWorkSheet;

// Build header list from column 0
var headers = new List<string>();
for (int col = 0; col < sheet.ColumnCount; col++)
{
    headers.Add(sheet.GetCellAt(0, col).StringValue);
}
Console.WriteLine("Columns: " + string.Join(" | ", headers));
Imports IronXL

' Load a tab-separated file
Dim workbook As WorkBook = WorkBook.LoadCSV("inventory.tsv", fileFormat:=ExcelFileFormat.XLSX, listDelimiter:=vbTab)
Dim sheet As WorkSheet = workbook.DefaultWorkSheet

' Build header list from column 0
Dim headers As New List(Of String)()
For col As Integer = 0 To sheet.ColumnCount - 1
    headers.Add(sheet.GetCellAt(0, col).StringValue)
Next
Console.WriteLine("Columns: " & String.Join(" | ", headers))
$vbLabelText   $csharpLabel

listDelimiter parametresi, alan ayırıcılarını belirtir -- burada, TSV dosyaları için sekmeler kullanılır. fileFormat parametresi, ayrıştırıldıktan sonra iç temsili belirler. Excel dosyalarını okumak hakkında daha fazla bilgi edinebilir ve ek dosya formatı seçenekleri keşfedebilirsiniz.

Bir metin düzenleyicisinde gösterilen 'inventory.tsv' adlı bir sekmeyle ayrılmış değerler (TSV) dosyasının ekran görüntüsü, ÜrünEnvanteri tablosu, ÜrünID, ÜrünAdı, Kategori, Miktar, BirimFiyat ve Tedarikçi sütunlarını gösterir.

Visual Studio Hata Ayıklama Konsolu, ÜrünEnvanteri, ÜrünAdı, Kategori, Miktar, BirimFiyat ve Tedarikçi CSV sütun başlıklarını gösterir

Karmaşık CSV Senaryolarını Nasıl İşleyeceksiniz?

Gerçek dünya CSV dosyaları genellikle basit ayrıştırma yaklaşımlarını bozan karmaşıklıklar içerir. IronXL bu zorlu senaryoları zarif bir şekilde ele alır ve tırnaklı alanlar, özel karakterler ve kodlama sorunlarına çözümler sunar. IronXL dökümantasyonu tüm gelişmiş senaryoları ayrıntılı olarak ele alır.

IronXL Tırnaklı Alanlar ve Özel Karakterlerle Nasıl Baş Eder?

IronXL, içinde ayraç olan tırnaklı alanlar içeren CSV dosyalarını otomatik olarak işler. Ayrıştırıcı, çift tırnakları kaçış dizisi olarak ele alan CSV standartlarını takip eder:

using IronXL;

// Create sample CSV with complex quoted fields
string csvContent = @"Name,Açıklama,Price,Category
""Johnson, Mike"",""Premium keyboard with mechanical switches"",149.99,Electronics
""O'Brien, Sarah"",""Children's toy - ages 3+"",29.99,Toys";

File.WriteAllText("complex_data.csv", csvContent);

WorkBook workbook = WorkBook.LoadCSV("complex_data.csv");
WorkSheet sheet = workbook.DefaultWorkSheet;

for (int row = 1; row <= sheet.RowCount; row++)
{
    string name = sheet[$"A{row}"].StringValue;
    string description = sheet[$"B{row}"].StringValue;
    Console.WriteLine($"Name: {name}");
    Console.WriteLine($"Açıklama: {description}");
}
using IronXL;

// Create sample CSV with complex quoted fields
string csvContent = @"Name,Açıklama,Price,Category
""Johnson, Mike"",""Premium keyboard with mechanical switches"",149.99,Electronics
""O'Brien, Sarah"",""Children's toy - ages 3+"",29.99,Toys";

File.WriteAllText("complex_data.csv", csvContent);

WorkBook workbook = WorkBook.LoadCSV("complex_data.csv");
WorkSheet sheet = workbook.DefaultWorkSheet;

for (int row = 1; row <= sheet.RowCount; row++)
{
    string name = sheet[$"A{row}"].StringValue;
    string description = sheet[$"B{row}"].StringValue;
    Console.WriteLine($"Name: {name}");
    Console.WriteLine($"Açıklama: {description}");
}
Imports IronXL

' Create sample CSV with complex quoted fields
Dim csvContent As String = "Name,Açıklama,Price,Category" & vbCrLf &
                           """Johnson, Mike"",""Premium keyboard with mechanical switches"",149.99,Electronics" & vbCrLf &
                           """O'Brien, Sarah"",""Children's toy - ages 3+"",29.99,Toys"

File.WriteAllText("complex_data.csv", csvContent)

Dim workbook As WorkBook = WorkBook.LoadCSV("complex_data.csv")
Dim sheet As WorkSheet = workbook.DefaultWorkSheet

For row As Integer = 1 To sheet.RowCount
    Dim name As String = sheet($"A{row}").StringValue
    Dim description As String = sheet($"B{row}").StringValue
    Console.WriteLine($"Name: {name}")
    Console.WriteLine($"Açıklama: {description}")
Next row
$vbLabelText   $csharpLabel

IronXL, "Johnson, Mike" 'i bir virgül içermesine rağmen tek bir alan olarak doğru bir şekilde yorumlar ve açıklamalardaki iç içe geçmiş tırnakları uygun şekilde işler. Bu otomatik işleme, özel ayrıştırıcıların gerektirdiği karmaşık düzenli ifadeleri veya durum makinelerini ortadan kaldırır.

Karakter Kodlama Sorunları Ne Olacak?

Farklı karakter kodlamaları ile çalışmak dikkatli bir yaklaşım gerektirir. IronXL, çeşitli kodlamaları otomatik olarak işler ve uluslararası karakterlerin doğru görüntülenmesini sağlar:

using IronXL;

WorkBook workbook = WorkBook.Load("international_data.csv");
WorkSheet sheet = workbook.DefaultWorkSheet;

for (int row = 1; row <= sheet.RowCount; row++)
{
    string city = sheet[$"A{row}"].StringValue;
    string country = sheet[$"B{row}"].StringValue;
    // Characters like n~, u-umlaut, e-acute display correctly
    Console.WriteLine($"Location: {city}, {country}");
}

// Save with UTF-8 encoding to preserve characters
workbook.SaveAsCsv("output_utf8.csv");
using IronXL;

WorkBook workbook = WorkBook.Load("international_data.csv");
WorkSheet sheet = workbook.DefaultWorkSheet;

for (int row = 1; row <= sheet.RowCount; row++)
{
    string city = sheet[$"A{row}"].StringValue;
    string country = sheet[$"B{row}"].StringValue;
    // Characters like n~, u-umlaut, e-acute display correctly
    Console.WriteLine($"Location: {city}, {country}");
}

// Save with UTF-8 encoding to preserve characters
workbook.SaveAsCsv("output_utf8.csv");
Imports IronXL

Dim workbook As WorkBook = WorkBook.Load("international_data.csv")
Dim sheet As WorkSheet = workbook.DefaultWorkSheet

For row As Integer = 1 To sheet.RowCount
    Dim city As String = sheet($"A{row}").StringValue
    Dim country As String = sheet($"B{row}").StringValue
    ' Characters like n~, u-umlaut, e-acute display correctly
    Console.WriteLine($"Location: {city}, {country}")
Next

' Save with UTF-8 encoding to preserve characters
workbook.SaveAsCsv("output_utf8.csv")
$vbLabelText   $csharpLabel

UTF-8, UTF-16 veya eski ANSI kodlamalarla çalışırken, IronXL okuma-yazma döngüleri sırasında karakter bütünlüğünü korur. CSV dosyaları kaydedilirken, maksimum uyumluluk için varsayılan olarak UTF-8 kullanılır. dışa aktarım rehberini tüm çıktı formatı seçenekleri için kontrol edebilirsiniz.

Girdi

Ülke, Bölge, Nüfus, GSYİH USD ve Para Birimi sütunları olan uluslararası veri gösteren Excel elektronik tablosu, 15 farklı ülkenin ilgili ekonomik bilgilerini gösterir.

Çıktı

Birden fazla dilde ülke adları ve bölgeleri ile Avrupa, Kuzey Amerika, Güney Amerika, Afrika ve Asya'dan gelen ülkeleri gösteren Visual Studio Hata Ayıklama Konsolu konum verilerini gösteriyor.

Özel Ayraçlar ve Bölgesel Formatlarla Nasıl Çalışırsınız?

Özel ayraçlar ve bölgesel formatlar esnek yapılandırma gerektirir. Avrupa CSV dosyaları genellikle ayraç olarak noktalı virgül ve ondalık ayırıcılar olarak virgül kullanır:

using IronXL;

// European CSV format (semicolon delimiter, comma decimal)
string europeanCsv = @"Product;Price;Quantity
Widget A;12,50;100
Gadget B;24,99;50";

File.WriteAllText("european.csv", europeanCsv);

WorkBook workbook = WorkBook.LoadCSV("european.csv",
    fileFormat: ExcelFileFormat.XLSX,
    listDelimiter: ";");
WorkSheet sheet = workbook.DefaultWorkSheet;

for (int row = 1; row <= sheet.RowCount; row++)
{
    string product = sheet[$"A{row}"].StringValue;
    string priceText = sheet[$"B{row}"].StringValue;
    decimal price = decimal.Parse(priceText.Replace(',', '.'));
    Console.WriteLine($"{product}: euro{price}");
}
using IronXL;

// European CSV format (semicolon delimiter, comma decimal)
string europeanCsv = @"Product;Price;Quantity
Widget A;12,50;100
Gadget B;24,99;50";

File.WriteAllText("european.csv", europeanCsv);

WorkBook workbook = WorkBook.LoadCSV("european.csv",
    fileFormat: ExcelFileFormat.XLSX,
    listDelimiter: ";");
WorkSheet sheet = workbook.DefaultWorkSheet;

for (int row = 1; row <= sheet.RowCount; row++)
{
    string product = sheet[$"A{row}"].StringValue;
    string priceText = sheet[$"B{row}"].StringValue;
    decimal price = decimal.Parse(priceText.Replace(',', '.'));
    Console.WriteLine($"{product}: euro{price}");
}
Imports IronXL

' European CSV format (semicolon delimiter, comma decimal)
Dim europeanCsv As String = "Product;Price;Quantity" & vbCrLf & "Widget A;12,50;100" & vbCrLf & "Gadget B;24,99;50"

File.WriteAllText("european.csv", europeanCsv)

Dim workbook As WorkBook = WorkBook.LoadCSV("european.csv", fileFormat:=ExcelFileFormat.XLSX, listDelimiter:=";")
Dim sheet As WorkSheet = workbook.DefaultWorkSheet

For row As Integer = 1 To sheet.RowCount
    Dim product As String = sheet($"A{row}").StringValue
    Dim priceText As String = sheet($"B{row}").StringValue
    Dim price As Decimal = Decimal.Parse(priceText.Replace(","c, "."c))
    Console.WriteLine($"{product}: euro{price}")
Next row
$vbLabelText   $csharpLabel

listDelimiter parametresi alan bölünmesini yapılandırırken, sayı ayrıştırma Avrupa ondalık notasyonunu .NET'in beklediği formata dönüştürür. Bu esneklik, kaynak verileri değiştirmeden herhangi bir bölgeden CSV dosyalarını işlemeye olanak tanır. veri ithalat rehberi ek veri ithalat senaryolarını kapsar.

Büyük CSV Dosyalarını Verimli Bir Şekilde Nasıl İşlersiniz?

Büyük CSV dosyalarını işlemek, bellek yönetimi ve performans konusunda düşünceli yaklaşımlar gerektiren benzersiz zorluklar sunar. IronXL, milyonlarca satırlık dosyaları, sistem kaynaklarını aşırı yüklemeden ele alabilmenin yollarını sunar.

Büyük Veri Kümeleri için Toplu İşleme Nasıl Kullanılır?

Toplu işleme, büyük veri kümelerini yönetilebilir parçalar halinde böler, bellek aşırı yüklenmesini önler ve ilerleme izlemeyi mümkün kılar:

using IronXL;

WorkBook workbook = WorkBook.LoadCSV("large_dataset.csv");
WorkSheet sheet = workbook.DefaultWorkSheet;

int batchSize = 1000;
int totalRows = sheet.RowCount;

for (int startRow = 1; startRow <= totalRows; startRow += batchSize)
{
    int endRow = Math.Min(startRow + batchSize - 1, totalRows);
    var batchResults = new List<(string Id, decimal Amount)>();

    for (int row = startRow; row <= endRow; row++)
    {
        string id = sheet[$"A{row}"].StringValue;
        decimal amount = sheet[$"B{row}"].DecimalValue;
        batchResults.Add((id, amount));
    }

    // Save batch results to database or file
    Console.WriteLine($"Processed rows {startRow} to {endRow}: {batchResults.Count} records");
}
using IronXL;

WorkBook workbook = WorkBook.LoadCSV("large_dataset.csv");
WorkSheet sheet = workbook.DefaultWorkSheet;

int batchSize = 1000;
int totalRows = sheet.RowCount;

for (int startRow = 1; startRow <= totalRows; startRow += batchSize)
{
    int endRow = Math.Min(startRow + batchSize - 1, totalRows);
    var batchResults = new List<(string Id, decimal Amount)>();

    for (int row = startRow; row <= endRow; row++)
    {
        string id = sheet[$"A{row}"].StringValue;
        decimal amount = sheet[$"B{row}"].DecimalValue;
        batchResults.Add((id, amount));
    }

    // Save batch results to database or file
    Console.WriteLine($"Processed rows {startRow} to {endRow}: {batchResults.Count} records");
}
Imports IronXL

Dim workbook As WorkBook = WorkBook.LoadCSV("large_dataset.csv")
Dim sheet As WorkSheet = workbook.DefaultWorkSheet

Dim batchSize As Integer = 1000
Dim totalRows As Integer = sheet.RowCount

For startRow As Integer = 1 To totalRows Step batchSize
    Dim endRow As Integer = Math.Min(startRow + batchSize - 1, totalRows)
    Dim batchResults As New List(Of (Id As String, Amount As Decimal))()

    For row As Integer = startRow To endRow
        Dim id As String = sheet($"A{row}").StringValue
        Dim amount As Decimal = sheet($"B{row}").DecimalValue
        batchResults.Add((id, amount))
    Next

    ' Save batch results to database or file
    Console.WriteLine($"Processed rows {startRow} to {endRow}: {batchResults.Count} records")
Next
$vbLabelText   $csharpLabel

Her seferinde 1000 satır işlemek, toplu işlemler arasında çöp toplanmasına olanak tanır, bu da sabit bellek kullanımını sürdürür. Bu desen aynı zamanda hata kurtarmayı kolaylaştırır -- baştan başlamak yerine son başarılı partiden devam edebilirsiniz. Excel to DataSet rehberi, verileri bellekte verimli bir şekilde işlemek için nasıl çalışılacağını gösterir.

Uluslararası veri girişlerini gösteren çeşitli Microsoft Excel elektronik tablo sütunları Ülke, Bölge, Şehir, Nüfus, GSYİH, Para Birimi, Enlem ve Boylam için geniş bir veri kümesinin ekran görüntüsü

1'den 10.001'e kadar satırların ilerleme mesajlarıyla 1000'lik gruplar halinde CSV kayıtlarının toplu işlenmesini gösteren konsol çıktısı

CSV ve Excel Formatları Arasında Nasıl Dönüşüm Yapılır?

IronXL'nin öne çıkan özelliklerinden biri CSV ve Excel formatları arasında dönüşüm yapabilme yeteneğidir, bu da her iki formatın avantajlarını kullanan iş akışlarını olanaklı kılar. Bu yetenek, ileri düzeyde Excel işlemleri için CSV verilerini içe aktarırken veya sistem entegrasyonu için Excel raporlarını CSV olarak dışa aktarırken paha biçilmezdir.

Formatlı Bir Excel Çalışma Kitabına CSV Dosyası Nasıl Dönüştürülür?

Formatlı Excel'e CSV dönüştürmek, veri sunumunu geliştirir ve formüller, grafikler ve stil gibi gelişmiş özellikleri etkinleştirir:

using IronXL;

WorkBook workbook = WorkBook.LoadCSV("sales_report.csv");
WorkSheet sheet = workbook.DefaultWorkSheet;

// Format header row
for (int col = 0; col < sheet.ColumnCount; col++)
{
    var headerCell = sheet.GetCellAt(0, col);
    headerCell.Style.Font.Bold = true;
    headerCell.Style.BackgroundColor = "#4472C4";
    headerCell.Style.Font.Color = "#FFFFFF";
}

// Format currency columns
for (int row = 1; row <= sheet.RowCount; row++)
{
    var priceCell = sheet[$"C{row}"];
    priceCell.FormatString = "$#,##0.00";
}

// Auto-fit columns for better display
for (int col = 0; col < sheet.ColumnCount; col++)
{
    sheet.AutoSizeColumn(col);
}

workbook.SaveAs("formatted_report.xlsx");
Console.WriteLine("CSV converted to formatted Excel file");
using IronXL;

WorkBook workbook = WorkBook.LoadCSV("sales_report.csv");
WorkSheet sheet = workbook.DefaultWorkSheet;

// Format header row
for (int col = 0; col < sheet.ColumnCount; col++)
{
    var headerCell = sheet.GetCellAt(0, col);
    headerCell.Style.Font.Bold = true;
    headerCell.Style.BackgroundColor = "#4472C4";
    headerCell.Style.Font.Color = "#FFFFFF";
}

// Format currency columns
for (int row = 1; row <= sheet.RowCount; row++)
{
    var priceCell = sheet[$"C{row}"];
    priceCell.FormatString = "$#,##0.00";
}

// Auto-fit columns for better display
for (int col = 0; col < sheet.ColumnCount; col++)
{
    sheet.AutoSizeColumn(col);
}

workbook.SaveAs("formatted_report.xlsx");
Console.WriteLine("CSV converted to formatted Excel file");
Imports IronXL

Dim workbook As WorkBook = WorkBook.LoadCSV("sales_report.csv")
Dim sheet As WorkSheet = workbook.DefaultWorkSheet

' Format header row
For col As Integer = 0 To sheet.ColumnCount - 1
    Dim headerCell = sheet.GetCellAt(0, col)
    headerCell.Style.Font.Bold = True
    headerCell.Style.BackgroundColor = "#4472C4"
    headerCell.Style.Font.Color = "#FFFFFF"
Next

' Format currency columns
For row As Integer = 1 To sheet.RowCount
    Dim priceCell = sheet($"C{row}")
    priceCell.FormatString = "$#,##0.00"
Next

' Auto-fit columns for better display
For col As Integer = 0 To sheet.ColumnCount - 1
    sheet.AutoSizeColumn(col)
Next

workbook.SaveAs("formatted_report.xlsx")
Console.WriteLine("CSV converted to formatted Excel file")
$vbLabelText   $csharpLabel

Kod başlıklara kalın biçimlendirme ve renk uygular, görsel hiyerarşi oluşturur. Binlik ayırıcılar içeren para birimi biçimlendirmesi, sayısal okunabilirliği geliştirir. AutoSizeColumn, içeriğe uyması amacıyla sütun genişliklerini ayarlar. hücre biçimlendirme rehberi ve Excel dosya yazma öğreticisi ek biçimlendirme teknikleri sağlar.

Girdi

Satış ID'si, Tarih, Bölge, Ürün, Satış Temsilcisi, Miktar, Birim Fiyat, Toplam Satış ve Para Birimi sütunları olan ve 26 satır uluslararası satış verileri içeren Excel elektronik tablosu

Çıktı

CSV'nin başarılı bir şekilde dönüştürülmesinden sonra 'CSV biçimlendirilmiş Excel dosyasına dönüştürüldü' mesajını gösteren Visual Studio Hata Ayıklama Konsolu

 Biçimlendirilmiş Excel çıktısı, karışık para birimlerini içeren, CSV ayrıştırıcısından işlenmiş satış verilerini düzgün biçimlendirilmiş sütunlarla gösterir

CSV Verisinden Yeni Excel Dosyaları Nasıl Oluşturulur?

Basit dönüştürmenin ötesinde, IronXL, birden fazla çalışma sayfası, formüller ve CSV kaynaklarından yapısal veri ile Excel dosyaları oluşturmanıza olanak tanır. hücre birleştirme rehberi, birleştirilmiş başlıklar ile profesyonel görünümlü raporlar oluşturmayı gösterir.

Konteynırlı dağıtımlar için, IronXL'nin dönüşüm yetenekleri Docker ortamlarında harici bağımlılıklar veya Office kurulumları olmadan çalışır. Bu, hafif, kendi kendine yeterli işlemenin gerekli olduğu bulut-yerli mimariler için idealdir.

CSV İşleminde IronXL Kullanmanın Faydaları Nelerdir?

IronXL, sayısız uç durumları ve özel uygulamaları etkileyen performans sorunlarını ortadan kaldırarak, CSV işlemlerini karmaşık bir zorluktan güvenilir bir operasyona dönüştürür. Kütüphane'nin akıllı ayrıştırıcı tırnaklı alanlar, özel karakterler ve çeşitli ayraçları otomatik olarak işlerken, CSV ve Excel formatları arasında dönüşüm sunar.

Müşteri verilerini içe aktarma, finansal kayıtları işleme veya formatlar arasında dönüşüm yapma fark etmeksizin, IronXL'ın C# CSV ayrıştırıcısı, siz iş mantığına odaklanırken karmaşıklıkları ele alırken, ayrıştırma altyapısına değil.

Kütüphane'nin sürekli gelişime olan bağlılığı düzenli güncellemelerle açıkça görülüyor. Temel kurulumdan gelişmiş senaryolara kadar her şeyi kapsayan dokümantasyon ile, IronXL, .NET 10 uygulamalarında CSV ve elektronik tablo işlemciliği konularında başarı için geliştiricilere gereken kaynakları sağlar.

CSV işleme iş akışınızı basitleştirmeye hazır mısınız? Tam özellik setini değerlendirmek için bir ücretsiz deneme lisansı ile başlayın. Dağıtıma hazır olduğunuzda, her büyüklükteki proje için tasarlanmış mevcut lisanslama seçeneklerini gözden geçirin.

IronXL CSV Ayrıştırıcı -- Uygun Bakışta Temel Yetkinlikler
Yetkinlik Açıklama Yaygın Kullanım Durumu
Otomatik ayraç algılama Virgülleri, sekmeleri, noktalı virgülleri ve boruları yapılandırma gerektirmeden algılar Üçüncü parti sistemlerden dosya ithalatı
Tırnaklı alan yönetimi Ayraç veya satır başları içeren alanları doğru şekilde ayrıştırır Veri dışa aktarımlarında adres ve açıklama alanları
Kodlama desteği UTF-8, UTF-16 ve ANSI kodlu dosyaları okur Uluslararası veri dosyalarını işleme
CSV'den Excel'e dönüşüm Biçimlendirme, formüller ve stilleri tek adımda dönüştürür ve uygular Ham verilerden formatlı raporlar oluşturma
Büyük dosya işleme Çoklu milyon satırlık dosyalar için toplu işleme desenleri ETL boru hatları ve veri geçiş görevleri

IronXL licensing page showing four pricing tiers (Lite $749, Plus $999, Professional $1,999, and Unlimited $3,999) with a toggle between IronXL and Iron Suite options

Sıkça Sorulan Sorular

CSV dosyası nedir ve neden yaygın olarak kullanılır?

Bir CSV (Virgülle Ayrılmış Değerler) dosyası, çeşitli uygulamalarla, veritabanlarıyla ve sistemlerle entegrasyon kolaylığı nedeniyle yaygın olarak kullanılan basit bir veri değiştirme formatıdır.

C#’da CSV dosyalarını ayrıştırırken ne gibi zorluklar ortaya çıkabilir?

C#’da CSV dosyalarını ayrıştırmak, virgül içeren tırnak işaretli alanların yönetimi, veri hücrelerinde satır kesmelerinin yönetimi ve basit string manipülasyonlarının ötesine geçen diğer ince ayrıntılar nedeniyle karmaşık olabilir.

IronXL, C#’da CSV dosyalarını ayrıştırmada nasıl yardımcı olabilir?

IronXL, karmaşık görevleri basitleştirerek ve verilerin doğru şekilde işlenmesini sağlayarak C#’da CSV dosyalarını ayrıştırmak için güçlü bir çözüm sunar.

IronXL’i CSV ayrıştırmaya uygun hale getiren özellikler nelerdir?

IronXL, karmaşık CSV dosyalarının ayrıştırılmasına uygun hale getiren tırnak işaretli alanların yönetimi ve satır kesmelerinin yönetimi gibi verimli veri işleme yetenekleri sunar.

IronXL farklı CSV formatları ile uyumlu mudur?

Evet, IronXL çeşitli CSV formatları ile uyumlu olacak şekilde tasarlanmıştır, bu da geliştiricilerin farklı sistemler ve uygulamalar arasında veri işleme görevlerini kolaylaştırmasına olanak tanır.

IronXL büyük CSV dosyalarını verimli bir şekilde işleyebilir mi?

IronXL, performanstan ödün vermeden hızlı ve doğru veri işleme garanti ederek büyük CSV dosyalarını verimli bir şekilde işlemek üzere optimize edilmiştir.

IronXL, CSV ayrıştırmasından sonra veri manipülasyonunu destekler mi?

Evet, IronXL sadece CSV dosyalarını ayrıştırmakla kalmaz, aynı zamanda veri manipülasyonu ve dönüştürmesini de destekler, geliştiricilerin veriyle sorunsuz bir şekilde çalışmasını sağlar.

IronXL, CSV ayrıştırma sırasında verilerin doğruluğunu nasıl sağlar?

IronXL, karmaşık CSV yapılarıyla başa çıkmak için gelişmiş ayrıştırma teknikleri kullanır, ayrıştırma süreci boyunca veri doğruluğunu ve bütünlüğünü sağlar.

IronXL'i diğer CSV ayrıştırma kütüphanelerinden farklı kılan nedir?

IronXL, kapsamlı özellik seti, verimliliği ve kullanım kolaylığı ile öne çıkar, geliştiricilere CSV ayrıştırma zorluklarını ele almak için güçlü bir araç sunar.

IronXL kullanarak CSV ayrıştırma hakkında daha fazla kaynağı nerede bulabilirim?

IronXL kullanarak CSV ayrıştırma hakkında daha fazla kaynak ve kılavuzu Iron Software web sitesi ve belge sayfalarında bulabilirsiniz.

Jordi Bardia
Yazılım Mühendisi
Jordi Python, C# ve C++ konularında en yetkin, Iron Software'deki yeteneklerini kullanmadığı zamanlarda; oyun programlıyor. Ürün testi, ürün geliştirme ve araştırma sorumluluklarını paylaşan Jordi, sürekli ürün gelişimine büyük değer katıyor. Çeşitli deneyimleri onu ...
Daha Fazlasını Oku

Iron Destek Ekibi

Haftanın 5 günü, 24 saat çevrimiçiyiz.
Sohbet
E-posta
Beni Ara