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şi için en yaygın kullanılan formatlardan biri olmaya devam ediyor. Görünüşteki basitliklerine rağmen, C#'ta CSV dosyalarını doğru bir şekilde ayrıştırmak hızla zor bir problem haline gelebilir. Virgüller içeren alıntılanmış alanların işlenmesinden veri hücrelerindeki satır sonlarının yönetimine kadar, CSV işlemenin incelikleri basit dize manipülasyonundan daha fazlasını talep eder.

Birçok geliştirici basit bir string.Split(',') yaklaşımıyla başlar, ancak gerçek dünyadaki CSV dosyalarının bu temel uygulamaları sayısız şekilde bozduğunu keşfeder. Büyük veri setlerini birden fazla sütunla işlerken performans sorunları ortaya çıkar, bellek tüketimi artar ve kenar durumları, hataları giderilmesi zor olan veri bozulmalarına neden olur. Bu zorluklar, her senaryoyu doğru şekilde ele almayan özel CSV ayrıştırma kodu yazma ve sürdürme sürecinde geçirilen sayısız saate neden olur.

IronXL, CSV işlemini bir hayal kırıklığı kaynağından güvenilir bir operasyona dönüştüren bir çözüm sunar. .NET için bir Excel kütüphanesi olarak, IronXL, CSV ayrıştırmanın karmaşıklıklarını ele alırken Excel formatlarıyla entegrasyon sağlayarak birden fazla veri formatıyla çalışan uygulamalar için ideal hale getirir. Müşteri verilerini içe aktarmak, finansal kayıtları işlemek veya envanter dosyalarını yönetmek fark etmeksizin, IronXL'nin C# CSV kütüphanesi ayrıştırıcısı, özel uygulamaların sıkça karşılaştığı kısımları ortadan kaldırır.

IronXL ana sayfası, Microsoft Office interop bağımlılıkları olmadan Excel dosyalarını okumak için bir C# kod örneği sergiliyor

C#'ta CSV Ayrıştırmayı Karmaşık Yapan Nedir?

CSV dosyalarının aldatıcı basitliği, gerçek dünya verilerini işlerken ortaya çıkan sayısız zorluğu gizler. Format basit gibi görünse de -- virgüllerle ayrılmış değerler -- gerçeklik, temel ayrıştırma yaklaşımlarını sekteye uğratabilecek birçok kenar durumu ve performans düşüncesini ele almayı içerir. Stack Overflow'daki tartışmalara göre, tecrübeli geliştiriciler bile uygun CSV işlemi konusunda zorluk yaşar. Microsoft .NET dosya giriş/çıkış belgelendirmesi, bu temel unsurların arka planını sunar ve sıfırdan üretime hazır bir CSV ayrıştırıcı oluşturmanın neden önemli bir iş olduğunu açıklar.

Temel Dize Bölme Neden Başarısız Olur?

Bir CSV dosyasını ayrıştı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 durumlar için mükemmel çalışır, ancak gerçek dünya verileriyle karşılaştığında hemen bozulur. Virgüllü alanlar büyük bir sorun oluşturur: "Smith, John",Developer,"New York, NY",50000 gibi bir CSV satırı, veritabanı yapısını bozup sonraki işlemlerde uyumsuzluk yaratarak beş alana bölünür.

Alanlar içindeki satır sonları da sorunlara neden olur. RFC 4180'e göre, alanlar doğru bir şekilde alıntılandığında satır sonları içerebilir. Çok satırlı bir adres alanı, satır bazlı okuma yaklaşımını bozar ve bir satır sonunun alıntılanmış bir alan içinde mi olduğunu yoksa yeni bir kayıt mı temsil ettiğini izlemek için karmaşık durum yönetimi gerektirir.

Kaçış karakterleri ve alıntı işleme ek karmaşıklıklar yaratır. CSV dosyaları, alıntı içindeki tırnakları kaçırmak için çeşitli yöntemler kullanır. Bazıları çift tırnak ( "") kullanırken, diğerleri ters çevri ya da başka kaçış karakterleri kullanır. Uygun şekilde işlenmediğinde "She said, ""Hello!""",greeting gibi veriler bozulur veya ayrıştırma hatalarına neden olur.

Farklı ayırıcılar ve kodlamalar daha da fazla karmaşıklık ekler. Tüm "CSV" dosyaları virgül kullanmaz. Sekmeyle ayrılmış değerler (TSV), boru işaretiyle ayrılmış dosyalar ve noktalı virgülle ayrılmış değerler yaygın varyasyonlardır. RFC 4180 standardı CSV formatı spesifikasyonlarını tanımlar, ancak birçok uygulama bu standardtan sapar.

Bellek Yönetimi Büyük Dosya İşlemlerini Nasıl Etkiler?

500MB'lık bir CSV dosyasını File.ReadAllLines() kullanarak tamamen belleğe yüklemek, önemli performans düşüşüne veya bellek yetersizliği istisnalarına neden olabilir. Milyonlarca satırı işlemek, uygulama duyarlılığını korumak için yürütme yaklaşımları ve verimli bellek yönetimi gerektirir.

Her biri potansiyel olarak farklı gelenekler kullanarak farklı kaynaklardan gelen CSV dosyalarıyla uğraşırken bu karmaşıklıklar çarpılır. Tüm senaryoları güvenilir bir şekilde ele alan bir ayrıştırıcı oluşturmak, ciddi geliştirme çabasını ve yeni kenar durumları ortaya çıktıkça süregelen bakımı gerektirir.

IronXL CSV İşleme Nasıl Ele Alır?

IronXL, kullanımı kolay bir şekilde gerçek dünya CSV karmaşıklıklarını ele alan bir ayrıştırıcı sunar. Geliştiricilerin çarkı yeniden icat etmeye zorlamak yerine, IronXL, her yaygın CSV zorluğunu sezgisel bir API aracılığıyla ele alan bir çözüm sunar.

Ayrıştırıcının akıllı motoru, veri içindeki tırnaklanmış alanları, gömülü ayırıcıları ve satır sonlarını otomatik olarak algılar ve işler. Motor, manuel yapılandırma gerektirmeden farklı CSV lehçelerine uyum sağlar, dosyaları doğru bir şekilde yorumlayarak RFC 4180 standartlarına sıkı sıkıya bağlı olan veya yaygın varyasyonlar kullananları ayırt eder.

Esnek ayırıcı desteği dahili olarak bulunur. Virgüller varsayılan olarak kalırken, IronXL, basit yapılandırma seçenekleriyle herhangi bir ayırıcı karakterini işler. Sekmeyle ayrılmış dosyalarla, boru işaretiyle ayrılmış dışa aktarımlarla veya noktalı virgül ile ayrılmış Avrupa formatlarıyla çalışırken, aynı API tüm varyasyonları tutarlı bir şekilde ele alır.

Excel entegrasyonu başka bir önemli avantajdır. Bağımsız CSV ayrıştırıcıları gibi değil, IronXL, CSV ve Excel formatları arasında çift yönlü dönüşüm sağlar. Bu yetenek, C# kodu aracılığıyla programlanabilir olarak gelişmiş biçimlendirme, formül uygulama ve grafik oluşturma işlemleri için CSV verilerinin Excel çalışma kitaplarına aktarılmasını sağlayan iş akışlarını etkinleştirir.

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

IronXL'i CSV Ayrıştırma İçin Nasıl Yükleriz?

IronXL'i yüklemek sadece birkaç basit adımı gerektirir. Kütüphane, Microsoft'un paket yönetim sistemi olan NuGet üzerinden herhangi bir .NET projesine entegre edilir. Ayrıntılı kurulum talimatları için IronXL NuGet yükleme kılavuzunu ziyaret edebilirsiniz.

Kurulum Adımları Nelerdir?

NuGet Paket Yöneticisi Konsolu veya .NET CLI kullanarak IronXL'i yükleyin:

Install-Package IronXL.Excel

lisans kurulumunu gerçekleştirmek için, IronXL'i tam olarak değerlendirmek amacıyla bir deneme lisansı alabilirsiniz.

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

Kurulumdan sonra, C# dosyalarınıza IronXL alan adını ekleyin ve sadece birkaç satırla 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() metodu, CSV dosyasını sezgisel bir şekilde ayrıştırır, ayırıcıları otomatik olarak algılar ve tırnaklanmış alanları işler. CSV dosyaları tek sayfa içerdiğinden, verilere DefaultWorkSheet aracılığıyla erişilir. Yazımlı erişici StringValue, tür güvenli değer alımı sağlar.

Giriş

Excel elektronik tablosu, 10 satır örnek müşteri verisi içeren CustomerID, FirstName, LastName, Email, City ve Country için sütunlarla müşteri veritabanını gösteriyor.

Çıktı

Visual Studio hata ayıklama konsolu, 'Müşteri: Emily' metninin görüntülendiğini gösteriyor

IronXL ile CSV Dosyaları Nasıl Okunur?

IronXL ile CSV dosyaları okumak, basit veri çıkarmadan karmaşık işleme iş akışlarına kadar farklı senaryolar için birden çok yaklaşım sunar. IronXL özellikler sayfası tüm yeteneklerin tamamını sunarken, açık çalışma kitabı rehberi ise çalışma kitabı işleme konusunda derinlemesine bilgi verir.

C# elektronik tablo manipülasyonu kütüphanesinin altı ana kategoriyi gösteren özellik genel görünümü: Yaratma, Kaydetme ve Dışa Aktarma, Çalışma Kitabı Düzenleme, Verilerle Çalışma, Çalışma Kitaplarınızı Güvenceye Alma ve Hücrelerle Çalışma.

CSV Satırları Nasıl İter edilir?

En doğrudan yaklaşım, varsayılan ayarlarla LoadCSV kullanarak tüm satırlarda yineleme yapar:

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'ın tipli erişimcileri, metni uygun .NET türlerine otomatik olarak dönüştürerek manuel 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ırlar boyunca devam eder.

Standart Olmayan Ayırıcılar Nasıl Ele Alınır?

Standart olmayan ayırıcıları olan CSV dosyaları için IronXL, listDelimiter parametresi aracılığıyla 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. fileFormat parametresi, ayrıştırma sonrasındaki içsel temsili belirler. Ek dosya formatı seçenekleri için Excel dosyalarını okuma konusunda daha fazla bilgi edinebilirsiniz.

'inventory.tsv' adlı bir sekmeyle ayrılmış değerler (TSV) dosyasının bir metin editöründe gösterilen ekran görüntüsü, ItemID, ItemName, Category, Quantity, UnitPrice ve Supplier sütunlarını içeren bir ürün envanter tablosunu gösteriyor.

Visual Studio Hata Ayıklama Konsolu, CSV sütun başlıklarını gösteriyor: ItemID, ItemName, Category, Quantity, UnitPrice ve Supplier

Karışık CSV Senaryoları Nasıl Ele Alınır?

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

IronXL Alıntılanmış Alanları ve Özel Karakterleri Nasıl Ele Alır?

IronXL, ayraçlar içeren alıntılanmış alanlarla CSV dosyalarını otomatik olarak ele alır. Ayrıştırıcı, CSV standartlarını izleyerek çift tırnakları kaçış dizileri olarak ele alır:

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, içinde virgül olmasına rağmen "Johnson, Mike"'u tek bir alan olarak doğru bir şekilde yorumlar ve açıklamalardaki iç içe geçmiş tırnak işaretlerini uygun şekilde işler. Bu otomatik işleme, özel ayrıştırıcılardan gereken karmaşık düzenli ifadeleri veya durum makinelerini ortadan kaldırır.

Karakter Kodlama Sorunları Ne Olacak?

Farklı karakter kodlamaları ile çalışırken dikkatli bir değerlendirme gerekir. IronXL, çeşitli kodlamaları otomatik olarak ele alarak 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 kodlamaları ile çalışırken, IronXL okuma-yazma döngüleri boyunca karakter bütünlüğünü korur. CSV dosyalarını kaydederken, maksimum uyumluluk için varsayılan olarak UTF-8 kullanılır. Tüm çıktı formatı seçeneklerini dışa aktarma kılavuzunda kontrol edin.

Giriş

Ülke, Bölge, Nüfus, GSYİH USD ve Para Birimi sütunları ile 15 farklı ülkenin ilgili ekonomik bilgilerinin gösterildiği uluslararası verileri içeren Excel elektronik tablosu.

Çıktı

Çeşitli dillerde ülke adları ve bölgeler içeren konum verilerini gösteren Visual Studio Hata Ayıklama Konsolu, Avrupa, Kuzey Amerika, Güney Amerika, Afrika ve Asya'dan ülkeler gösteriliyor.

Özel Ayırıcılar ve Bölgesel Formatlarla Nasıl Çalışılır?

Özel ayırıcılar ve bölgesel formatlar esnek yapılandırma gerektirir. Avrupa CSV dosyaları sık sık noktalı virgülleri ayırıcı olarak ve virgülleri ondalık ayırıcı olarak 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 ayrımını yapılandırır; sayı ayrıştırması ise Avrupa ondalık gösterimini .NET'in beklediği formata dönüştürür. Bu esneklik, kaynak veriler değiştirilmeden herhangi bir bölgede CSV dosyalarını işlemeyi sağlar. Ek veri içe aktarma senaryolarını veri içe aktarma kılavuzunda bulabilirsiniz.

Büyük CSV Dosyaları Nasıl Verimli İşlenir?

Büyük CSV dosyalarını işlemek, bellek yönetimi ve performans için düşündürücü yaklaşımlar gerektiren özel zorluklar sunar. IronXL, sistem kaynaklarını bunaltmadan milyonlarca satırlı dosyaları işleyecek stratejiler sunar.

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

Toplu işleme, büyük veri kümesini yönetilebilir parçalara ayırarak, bellek taşmasını önler ve ilerlemeyi izlemeyi sağ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

1000 satırı bir seferde işlemek, toplu işlemler arasında çöp toplamayı sağlar ve sürekli bellek kullanımını korur. Desen ayrıca hata düzeltmeyi kolaylaştırır -- son başarılı işlem grubundan itibaren kaldığınız yerden devam edebilir, baştan başlamak zorunda kalmazsınız. Bellekte toplu verilerle verimli çalışmayı gösteren Excel to DataSet kılavuzu'na bakın.

Microsoft Excel elektronik tablosu, Ülke, Bölge, Şehir, Nüfus, GSYİH, Para Birimi, Enlem ve Boylam sütunlarıyla çeşitli uluslararası veri kayıtlarını gösteren büyük bir veri setiyle gösteriliyor.

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

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

IronXL'in öne çıkan özelliklerinden biri, CSV ve Excel formatları arasında dönüşüm yapabilme yeteneğidir, her iki formatın güçlü yönlerini kullanan iş akışlarını etkinleştirir. Bu yetenek, CSV verilerini gelişmiş Excel işleme için aktarırken veya entegrasyon için Excel raporlarını CSV olarak dışa aktarırken paha biçilmezdir.

CSV Dosyasını Biçimlendirilmiş Excel Çalışma Kitabına Nasıl Dönüştürürsünüz?

CSV'yi Excel'e 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ılarla para birimi formatlama, sayısal okunabilirliği artırır. AutoSizeColumn, sütun genişliklerini içeriğe uyacak şekilde ayarlar. hücre biçimlendirme kılavuzu ve Excel dosyası yazma eğitimi ek biçimlendirme teknikleri sağlar.

Giriş

26 satır uluslararası satış verisi içeren Sale ID, Date, Region, Product, Sales Representative, Quantity, Unit Price, Total Sale ve Currency sütunlarıyla satış verilerini gösteren Excel elektronik tablosu.

Çıktı

Başarılı bir dönüşümden sonra 'CSV, biçimlendirilmiş Excel dosyasına dönüştü' mesajını gösteren Visual Studio Hata Ayıklama Konsolu.

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

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

Basit bir dönüştürmenin ötesinde, IronXL birkaç çalışma tabakası, formüller ve CSV kaynaklarından yapısal verilerle Excel dosyaları oluşturmanıza olanak sağlar. hücreleri birleştirme rehberi, birleştirilmiş başlıklarla profesyonel görünümlü raporlar nasıl oluşturulacağını gösterir.

Konternerleşmiş dağıtımlar için, IronXL'in dönüştürme yetenekleri, Docker ortamlarında harici bağımlılıklar veya Office kurulumları olmadan çalışır. Bu, hafif, kendi içinde kapsüllü işlemenin önemli olduğu bulut tabanlı mimariler için idealdir.

Neden CSV İşleme İçin IronXL Kullanmalısınız?

IronXL, sayısız kenar vakasını ve performans sorunlarını ortadan kaldırarak CSV işlemesini karmaşık bir zorluktan güvenilir bir operasyona dönüştürür ve özel uygulamaları mahveder. Kütüphanenin akıllı ayrıştırıcısı, alıntılanmış alanları, özel karakterleri ve çeşitli ayırıcıları otomatik olarak işlerken, CSV ve Excel formatları arasında dönüşüm sağlar.

Müşteri verilerini alırken, finansal kayıtları işlerken veya formatlar arasında dönüştürürken, IronXL'in C# CSV ayrıştırıcısı karmaşıklıkları ele alır, böylece iş mantığı yerine ayrıştırma altyapısına odaklanmanızı sağlar.

Kütüphanenin sürekli gelişim taahhüdü, düzenli güncellemelerle belirgindir. Temel kurulumu ele almak için her şeyden detaylı belgelere sahip IronXL, geliştiricilere .NET 10 uygulamalarında CSV ve elektronik tablo işleme konusunda başarılı olmaları için gerekli kaynakları sağlar.

CSV iş akışınızı basitleştirmeye hazır mısınız? ücretsiz deneme lisansı ile tüm özellik setini değerlendirmeye başlayın. Hazır olduğunuzda, her boyutta proje için tasarlanmış lisanslama seçeneklerine göz atın.

IronXL CSV Ayrıştırıcısı -- Bir Bakışta Temel Yetkinlikler
Yetenek Açıklama Yaygın Kullanım Durumu
Otomatik ayırıcı algılama Virgülleri, sekmeleri, noktalı virgülleri ve boruları yapılandırmaya gerek duymadan algılar Üçüncü taraf sistemlerden dosya içe aktarma
Alıntılanmış alan işleme Ayraçları veya satır sonlarını 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 kodlanmış dosyaları okur Uluslararası veri dosyalarını işleme
CSV'den Excel'e dönüşüm Biçimlendirme, formüller ve stilleri bir adımda uygular Ham veriden biçimlendirilmiş raporlar üretme
Büyük dosya işleme Çok milyon satırlı dosyalar için toplu işleme desenleri ETL hatları ve veri taşıma görevleri

IronXL licensing page showing four pricing tiers (Lite $999, 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?

CSV (Virgülle Ayrılmış Değerler) dosyası, basitliği ve çeşitli uygulamalar, veritabanları ve sistemlerle entegrasyon kolaylığı nedeniyle yaygın olarak kullanılan bir veri alışverişi için basit bir metin formatıdır.

C#'ta CSV dosyalarını ayrıştırırken hangi zorluklar ortaya çıkabilir?

C#'ta CSV dosyalarını ayrıştırmak, virgül içeren tırnak içindeki alanları ele almak, veri hücrelerinde satır sonlarını yönetmek ve temel dize manipülasyonunun ötesine geçen diğer inceliklerle ilgili sorunlar nedeniyle karmaşık olabilir.

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

IronXL, C#'ta CSV dosyalarını ayrıştırmak için sağlam bir çözüm sunar, karmaşık görevleri basitleştirir ve etkin ayrıştırma yetenekleriyle doğru veri işleme sağlar.

IronXL'yi CSV ayrıştırması için uygun hale getiren hangi özelliklerdir?

IronXL, tırnak içindeki alanları ele alma, satır sonlarını yönetme ve verimli veri işleme yetenekleri sunarak, karmaşık CSV dosyalarının ayrıştırılması için uygun hale getirir.

IronXL, farklı CSV formatlarıyla uyumlu mu?

Evet, IronXL, farklı sistemler ve uygulamalar arasında veri işleme görevlerini kolaylaştıran çeşitli CSV formatlarıyla uyumlu olacak şekilde tasarlanmıştır.

IronXL, büyük CSV dosyalarını verimli bir şekilde yönetebilir mi?

IronXL, büyük CSV dosyalarını verimli bir şekilde yönetmek için optimize edilmiştir ve hızlı ve doğru veri işleme sağlar, performanstan ödün vermeden.

IronXL, CSV ayrıştırmasından sonra veri manipülasyonunu destekliyor mu?

Evet, IronXL sadece CSV dosyalarını ayrıştırmakla kalmaz, aynı zamanda veriyi manipüle etme ve dönüştürmeyi de destekler, geliştiricilerin verilerle sorunsuz çalışmasına olanak tanır.

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

IronXL, karmaşık CSV yapılarının ele alınmasında ileri ayrıştırma teknikleri kullanmak suretiyle veri doğruluğunu ve bütünlüğünü sağlar.

IronXL'yi 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'yi CSV ayrıştırma için kullanmaya yönelik daha fazla kaynağı nerede bulabilirim?

IronXL'yi CSV ayrıştırma için kullanmaya yönelik daha fazla kaynak ve kılavuzu, Iron Software web sitesinde ve belgeler sayfalarında bulabilirsiniz.

Curtis Chau
Teknik 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ı...

Daha Fazla Oku

Iron Destek Ekibi

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