Altbilgi içeriğine atla
IRONXL KULLANARAK

C#'da Virgüllerle CSV Dosyalarını Nasıl Okursunuz

.NET Geliştiricileri Neden Daha İyi Bir CSV Çözümüne İhtiyaç Duyuyor?

CSV dosyaları sayısız .NET uygulaması arasında veri alışverişini güçlendirir. Finansal raporlardan envanter sistemlerine kadar, sadece birkaç kod satırıyla programlı olarak CSV dosyaları oluşturma özgürlüğü sizde. CsvHelper gibi kütüphaneler temel CSV işlemlerini karşılasa da, modern geliştiriciler formüllerle Excel çalışma kitapları dönüştürme, verileri aktarma sırasında veri türlerini koruma ve kurumsal düzeyde tablo süreçleriyle uğraşma gibi karmaşık senaryolarla karşılaşıyorlar. IronXL kapsamlı Excel işlevselliği ile sağlam CSV yazımını birleştirerek, birden fazla sütunu tek bir bağımlılık içermeyen kütüphanede kolayca işler ve RFC 4180 standartlarına uyar.

Bu, birden fazla sütunu destekleyen, yalnızca işlenen satırı etkileyen satıra özgü işlevsellik sunan ve otomatik olarak çıkarılan ayırıcıları destekleyen özel bir .NET CSV yazıcı veya .NET CSV ayıklayıcı oluşturan geliştiriciler için idealdir.

IronXL ile Başlangıç

IronXL yüklendiğinde, birkaç saniye içinde NuGet Paket Yöneticisi ile süreci tamamlayabilirsiniz:

Install-Package IronXL.Excel

Yüklendikten sonra, CSV dosyaları yazmaya başlamak ve ayrılmış değerlerle verimli bir şekilde çalışmak için IronXL ad alanını ekleyin:

using IronXL;
class Program
{
    static void Main(string[] args)
    {
        // Create a new workbook and worksheet
        WorkBook workBook = WorkBook.Create();
        WorkSheet workSheet = workBook.CreateWorkSheet("data");
        // Add headers
        workSheet["A1"].Value = "Product";
        workSheet["B1"].Value = "Quantity";
        workSheet["C1"].Value = "Price";
        // Add data
        workSheet["A2"].Value = "Widget";
        workSheet["B2"].Value = 100;
        workSheet["C2"].Value = 19.99;
        // Save as CSV with comma delimiter
        workBook.SaveAsCsv("inventory.csv", ",");
    }
}
using IronXL;
class Program
{
    static void Main(string[] args)
    {
        // Create a new workbook and worksheet
        WorkBook workBook = WorkBook.Create();
        WorkSheet workSheet = workBook.CreateWorkSheet("data");
        // Add headers
        workSheet["A1"].Value = "Product";
        workSheet["B1"].Value = "Quantity";
        workSheet["C1"].Value = "Price";
        // Add data
        workSheet["A2"].Value = "Widget";
        workSheet["B2"].Value = 100;
        workSheet["C2"].Value = 19.99;
        // Save as CSV with comma delimiter
        workBook.SaveAsCsv("inventory.csv", ",");
    }
}
Imports IronXL

Class Program
    Shared Sub Main(args As String())
        ' Create a new workbook and worksheet
        Dim workBook As WorkBook = WorkBook.Create()
        Dim workSheet As WorkSheet = workBook.CreateWorkSheet("data")
        ' Add headers
        workSheet("A1").Value = "Product"
        workSheet("B1").Value = "Quantity"
        workSheet("C1").Value = "Price"
        ' Add data
        workSheet("A2").Value = "Widget"
        workSheet("B2").Value = 100
        workSheet("C2").Value = 19.99
        ' Save as CSV with comma delimiter
        workBook.SaveAsCsv("inventory.csv", ",")
    End Sub
End Class
$vbLabelText   $csharpLabel

Bu basit konsol test programı, verileri içeren bir Workbook nesnesi oluşturarak doğrudan C# kodunuzdan CSV içeriği yazmayı nasıl gösteriyor. SaveAsCsv yöntemi varsayılan bir ayırıcı (virgül) kullanır, ancak farklı yerel ayarlar için ayırıcıyı tanımlamanıza olanak tanır; Bu özellikle ondalık ayırıcı veya alternatif sütun ayırıcı karakteri tanımlarken yardımcı olur. İçsel olarak, sep, çıktı tamponu için dizi ayırma işlemleri yapar. Önceden bahsedilen sep parametresi bu karakteri tanımlamanıza olanak tanır.

Statik bir giriş noktası sağlamanın yanı sıra, kaynakları statik olarak tanımlanmış bir havuz kullanarak etkili bellek yönetimini nasıl gerçekleştireceğimizi de gösterdik, bu da birden fazla satır arasında yüksek performans sağlar.

Gelişmiş CSV Dosyası Oluşturma Teknikleri

Virgüllü CSV Dosyalarını C# ile Okuma: Şekil 1 - IronXL ile Örnek CSV çıktısı

Gelişmiş CSV Dosyası Oluşturma Teknikleri

Excel Çalışma Kitaplarını CSV'ye Dönüştürme

Mevcut Excel dosyalarını CSV'ye dönüştürme, formülleri değerlendirme ve veri bütünlüğünü koruma konusunda IronXL üstün. Başlık satırları ve dinamik olarak üretilen verileri içeren CSV dosyaları yazarken bu gereklidir.

// Load an Excel file with formulas and formatting
WorkBook workBook = WorkBook.Load("financial_report.xlsx");
// IronXL evaluates formulas before export
workBook.EvaluateAll();
// Export to CSV - each worksheet creates a separate CSV file
workBook.SaveAsCsv("report.csv", ",");
// Creates: report.Sheet1.csv, report.Sheet2.csv, etc.
// Load an Excel file with formulas and formatting
WorkBook workBook = WorkBook.Load("financial_report.xlsx");
// IronXL evaluates formulas before export
workBook.EvaluateAll();
// Export to CSV - each worksheet creates a separate CSV file
workBook.SaveAsCsv("report.csv", ",");
// Creates: report.Sheet1.csv, report.Sheet2.csv, etc.
' Load an Excel file with formulas and formatting
Dim workBook As WorkBook = WorkBook.Load("financial_report.xlsx")
' IronXL evaluates formulas before export
workBook.EvaluateAll()
' Export to CSV - each worksheet creates a separate CSV file
workBook.SaveAsCsv("report.csv", ",")
' Creates: report.Sheet1.csv, report.Sheet2.csv, etc.
$vbLabelText   $csharpLabel

Çok sayfalı çalışma kitaplarını dönüştürürken, IronXL her çalışma sayfası için ayrı CSV dosyaları oluşturur. Son CSV çıktısında doğru verilerin temin edilmesini sağlayarak, formül hesaplamaları ihracat öncesinde gerçekleştirilir. Ancak bu tek özellik değildir. Varsayılan otomatik çıkarılan ayırıcı, bölgeler arasında uyumluluğu sağlar ve birden fazla satır veya sütun sorunsuz bir şekilde ele alınır.

Varsayılan desteklenen ayırıcıların değişebildiği dinamik ortamlar için de sep kullanılabilir.

Çıktı

İlk olarak, çok sayfalı Excel dosyamızdan oluşturulan CSV dosyalarını burada görebilirsiniz:

Virgüllü CSV Dosyalarını C# ile Okuma: Şekil 2 - CSV dosyaları

Ve işte Excel sayfalarından birinin karşılaştırılması örneği ve karşılık gelen CSV dosyası:

Virgüllü CSV Dosyalarını C# ile Okuma: Şekil 3 - Örnek çıktı

DataTable'ı CSV'ye Aktarma

Veritabanı odaklı uygulamalar için, IronXL DataTable aktarımlarını kolaylaştırır. Var'i DataRow olarak ayarlıyoruz, bu da tipik bir ref var v yerine daha net olur.

// Assume dataTable contains query results
DataTable dataTable = GetSalesData();
WorkBook workBook = WorkBook.Create();
WorkSheet workSheet = workBook.CreateWorkSheet("sales");
// Import DataTable directly
var row = 1;
foreach (var dataRow in dataTable.Rows)
{
    for (var col = 0; col < dataTable.Columns.Count; col++)
    {
        workSheet.SetCellValue(row, col, dataRow[col].ToString());
    }
    row++;
}
// Export with custom delimiter if needed
workBook.SaveAsCsv("sales_data.csv", ";");
// Assume dataTable contains query results
DataTable dataTable = GetSalesData();
WorkBook workBook = WorkBook.Create();
WorkSheet workSheet = workBook.CreateWorkSheet("sales");
// Import DataTable directly
var row = 1;
foreach (var dataRow in dataTable.Rows)
{
    for (var col = 0; col < dataTable.Columns.Count; col++)
    {
        workSheet.SetCellValue(row, col, dataRow[col].ToString());
    }
    row++;
}
// Export with custom delimiter if needed
workBook.SaveAsCsv("sales_data.csv", ";");
Imports System.Data

' Assume dataTable contains query results
Dim dataTable As DataTable = GetSalesData()
Dim workBook As WorkBook = WorkBook.Create()
Dim workSheet As WorkSheet = workBook.CreateWorkSheet("sales")
' Import DataTable directly
Dim row As Integer = 1
For Each dataRow As DataRow In dataTable.Rows
    For col As Integer = 0 To dataTable.Columns.Count - 1
        workSheet.SetCellValue(row, col, dataRow(col).ToString())
    Next
    row += 1
Next
' Export with custom delimiter if needed
workBook.SaveAsCsv("sales_data.csv", ";")
$vbLabelText   $csharpLabel

İçe aktarma sırasında, dataTable.Rows koleksiyonundan her bir yatay veri seti çalışma sayfasında yeni bir satır haline gelir. Dönüştürme sırasında IronXL veri türlerini korur, bu da sayıların sayısal kalması, tarihlerin biçimlerini koruması ve metnin özel karakterleri doğru bir şekilde işlemesi anlamına gelir, ek yapılandırma olmadan.

Çıktı

İşte örnek veri kaynağımızı çıktı CSV dosyasının yanında görebilirsiniz:

Virgüllü CSV Dosyalarını C# ile Okuma: Şekil 4 - DataTable'ı CSV çıktısına aktarma

IronXL ve CsvHelper: Yan Yana CSV Dosyası Yazma Karşılaştırması

CSV çözümleme ve yazım iş akışlarını gösteren bu çalışan veri aktarım senaryosunu düşünün.

CsvHelper Uygulaması:

using (var writer = new StreamWriter("employees.csv"))
using (var csv = new CsvWriter(writer, CultureInfo.InvariantCulture))
{
    csv.WriteRecords(employees);
}
using (var writer = new StreamWriter("employees.csv"))
using (var csv = new CsvWriter(writer, CultureInfo.InvariantCulture))
{
    csv.WriteRecords(employees);
}
Imports System.Globalization
Imports System.IO
Imports CsvHelper

Using writer As New StreamWriter("employees.csv")
    Using csv As New CsvWriter(writer, CultureInfo.InvariantCulture)
        csv.WriteRecords(employees)
    End Using
End Using
$vbLabelText   $csharpLabel

IronXL Uygulaması:

WorkBook workBook = WorkBook.Create();
WorkSheet workSheet = workBook.CreateWorkSheet("employees");
// Add data with automatic type handling
int rowIndex = 1;
foreach (var emp in employees)
{
    workSheet[$"A{rowIndex}"].Value = emp.Name;
    workSheet[$"B{rowIndex}"].Value = emp.Salary;
    workSheet[$"C{rowIndex}"].Value = emp.StartDate;
    rowIndex++;
}
workBook.SaveAsCsv("employees.csv", ",");
WorkBook workBook = WorkBook.Create();
WorkSheet workSheet = workBook.CreateWorkSheet("employees");
// Add data with automatic type handling
int rowIndex = 1;
foreach (var emp in employees)
{
    workSheet[$"A{rowIndex}"].Value = emp.Name;
    workSheet[$"B{rowIndex}"].Value = emp.Salary;
    workSheet[$"C{rowIndex}"].Value = emp.StartDate;
    rowIndex++;
}
workBook.SaveAsCsv("employees.csv", ",");
Dim workBook As WorkBook = WorkBook.Create()
Dim workSheet As WorkSheet = workBook.CreateWorkSheet("employees")
' Add data with automatic type handling
Dim rowIndex As Integer = 1
For Each emp In employees
    workSheet($"A{rowIndex}").Value = emp.Name
    workSheet($"B{rowIndex}").Value = emp.Salary
    workSheet($"C{rowIndex}").Value = emp.StartDate
    rowIndex += 1
Next
workBook.SaveAsCsv("employees.csv", ",")
$vbLabelText   $csharpLabel

Özellik

CsvHelper

IronXL

Temel CSV Yazımı

Excel'den CSV'ye Dönüştürme

Formül Değerlendirmesi

Çok sayfalı İşleme

Veri Türü Koruma

Elle

Otomatik

Excel Formatı Desteği

XLSX, XLS, XLSM

MS Office Gerektirmez

CsvHelper basit sütun yazma işlemlerini etkili bir şekilde işlerken, IronXL birden çok satır, interpolasyonlu diziler ve dinamik kod oluşturma senaryolarında çalışabilme esnekliğini sağlar ve hatta ref struct link gibi yapılarla düşük seviyeli optimizasyonlara imkan tanır.

Geliştiriciler belirli kriterleri karşılayan satırları tarayabilir, varsayılan otomatik ayıklanan ayırıcıları yönetebilir veya yalnızca her bir girdinin anahtarını hata ayıklama için açığa çıkaran basit konsol programlarıyla test edebilir.

Kurumsal Özellikler ve En İyi Uygulamalar

IronXL'nin SaveAsCsv yöntemi, kurumsal düzeyde yetenekler içerir:

  • Özel ayırıcılar: Virgül, noktalı virgül, sekme veya herhangi bir karakter için destek (varsayılan ayırıcı sep ile değiştirilebilir)
  • Kodlama seçenekleri: UTF-8, UTF-16 ve özel kodlamalar
  • Formül değerlendirmesi: İhracattan önce Excel formüllerini hesaplar
  • Çapraz platform desteği: Windows, Linux ve macOS üzerinde çalışır

Geliştiriciler ayrıca birden fazla sütuna erişmek için uzantı yöntemleri uygulayabilir, etkin işleme veya metin sarma gerektiğinde birden fazla satıra yayılan CSV satırları yazabilir.

Yaygın Sorunlar ve Çözümleri

CSV çıkışlarıyla çalışırken, geliştiriciler genellikle bu zorluklarla karşılaşırlar:

  • Veri içindeki özel karakterler: IronXL, tırnak işaretlerini, virgülleri ve satır sonlarını otomatik olarak kaçış karakteri ile korur
  • Büyük dosya yönetimi: Veriyi parçalara bölerek işlemek için çalışma sayfası aralıklarını kullanın,
  • Karakter kodlama sorunları: Uluslararası karakterler için UTF-8 kodlamasını belirtin
  • Eksik veri türleri: IronXL, varsayılan olarak sayısal ve tarih formatlarını korur

Ayrıntılı olarak sorun giderme için IronXL'nin CSV belgelendirmesi, API referansı ve destek kaynaklarını ziyaret edin.

Bugün CSV Yazıcınızı Oluşturmaya Başlayın

IronXL, CSV yazımını bir çözümleme zorluğundan basit bir işleve dönüştürür. CSV işlevselliğini Excel çalışma kitabı desteği, formül değerlendirmesi ve otomatik tür işleme ile birleştirerek, birden fazla kütüphaneyi yönetme veya manuel veri dönüşümleri karmaşıklığını ortadan kaldırır.

CSV iş akışlarınızı kolaylaştırmaya hazır mısınız? Ücretsiz denemeye başlayın $liteLicense'dan başlayarak.

Sıkça Sorulan Sorular

.NET geliştiricileri neden daha iyi bir CSV çözümüne ihtiyaç duyuyor?

.NET geliştiricileri, gömülü virgüller veya özel karakterler içeren CSV dosyalarıyla uğraşırken sıklıkla zorluklarla karşılaşır. IronXL, bu karmaşıklıkları zahmetsizce ele alabilecek gelişmiş işlevler sunarak veri ayrıştırma doğruluğunu ve verimliliğini artırır.

IronXL, CSV dosyalarında tırnak içindeki alanları nasıl yönetir?

IronXL, virgüller veya diğer özel karakterler içeren verilerin hatasız bir şekilde yorumlanmasını ve işlenmesini sağlamak için tırnak içindeki alanlarla CSV dosyalarını doğru bir şekilde ayrıştırmak üzere tasarlanmıştır.

C# içinde CSV ayrıştırma için IronXL kullanmanın avantajları nelerdir?

IronXL, özel karakterler, tırnak içindeki alanlar ve büyük veri kümeleri için destek dahil olmak üzere, CSV dosyalarını ayrıştırmak için sağlam özellikler sunar. Bu, güvenilirliği artırır ve geliştiricilerin CSV ile ilgili sorunların hata ayıklamasına harcadıkları zamanı azaltır.

IronXL, özel karakterler içeren CSV dosyalarını işleyebilir mi?

Evet, IronXL, çeşitli özel karakterler içeren CSV dosyalarını işleyebilir ve tüm verilerin doğru bir şekilde okunup işlenmesini sağlar, ayrıştırma hatalarına veya veri kaybına neden olmaz.

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

IronXL, gömülü virgüller ve tırnak içindeki alanlar gibi karmaşık CSV senaryolarını kolaylıkla ele alma yeteneği ile öne çıkar. Kullanıcı dostu API'si ve kapsamlı işlevselliği ile C#'ta CSV verileriyle çalışan geliştiriciler için tercih edilen bir seçimdir.

IronXL ile büyük CSV dosyaları işlemek mümkün mü?

IronXL, performans için optimize edilmiştir ve büyük CSV dosyalarını verimli bir şekilde işleyebilir, bu da onu kapsamlı veri kümeleri işleyen uygulamalar için uygun bir hale getirir.

IronXL, CSV veri işleme güvenilirliğini nasıl artırır?

IronXL, gömülü virgüller ve özel karakterler içeren CSV dosyalarını doğru bir şekilde işlemektedir, bu da veri ayrıştırma sırasında hataların oluşma olasılığını azaltmakta ve veri bütünlüğünü sağlamaktadır.

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