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ç Duyar?

CSV dosyaları sayısız .NET uygulaması arasında veri alışverişini sağlar. Finansal raporlardan envanter sistemlerine kadar, sadece birkaç satır kod yazarak programatik olarak CSV dosyaları oluşturma özgürlüğüne sahipsiniz. CsvHelper gibi kütüphaneler temel CSV işlemlerini kapsarken, modern geliştiriciler karmaşık senaryolarla karşı karşıya kalır: formüllerle dolu Excel defterlerini dönüştürmek, veri türlerini dışa aktarma sırasında korumak ve kurumsal sınıf hesap tablosu iş akışlarını yönetmek. IronXL bu zorlukları, sağlam CSV yazımını kapsamlı Excel işlevselliği ile birleştirerek çözerek, tek bir, birden fazla sütunu kolayca işleyen, RFC 4180 standartlarına uygun, bağımlılıksız kütüphane sağlar.

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

IronXL ile Başlarken

IronXL'yi yüklemek, NuGet Paket Yöneticisi ile saniyeler sürer:

Install-Package IronXl.Excel

Yüklendikten sonra, CSV dosyalarını yazmaya ve ayrı değerlerle verimli çalışmaya başlamak 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ı, C# kodunuzdan doğrudan CSV içeriği nasıl yazılacağını ve verilerin bulunduğu bir Workbook nesnesi oluşturduğunu gösterir. SaveAsCsv yöntemi varsayılan bir ayırıcı (virgül) kullanır, ancak farklı yerel ayarlar için sep tanımlamanıza izin verir; bu, bir ondalık ayırıcı veya alternatif sütun ayırıcı karakterinin işlenmesi gerektiğinde özellikle yararlıdır. Dahili olarak, sep çıktı tamponu için dizi tahsisini işler. Daha önce belirtilen sep parametresi bu karakteri tanımlamanıza izin verir.

Ayrıca statik bir giriş noktası sağlamayı ve yüksek performansı birden fazla satırda sağlayan, statik olarak tanımlanmış bir kaynak havuzu kullanarak verimli bellek yönetimini nasıl yapabileceğimizi gösterdik.

İleri Düzey CSV Dosya Oluşturma Teknikleri

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

İleri Düzey CSV Dosya Oluşturma Teknikleri

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

IronXL, mevcut Excel dosyalarını CSV'ye dönüştürme, formülleri değerlendirme ve veri bütünlüğünü koruma konusunda ustadır. Bu, hem başlık satırlarını hem de dinamik olarak üretilen verileri içeren CSV dosyaları yazarken 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

Çoklu sayfa defterleri dönüştürülürken, IronXL her bir çalışma sayfası için bireysel CSV dosyaları otomatik olarak oluşturur. Formül hesaplamaları dışa aktarma öncesi gerçekleştirilir, böylece nihai CSV çıktısında doğru veriler elde edilir. Ama bu tek özellik değildir. Varsayılan olarak otomatik olarak çıkarılan ayırıcı, bölgeler arasında uyumluluk sağlar ve birden fazla satır veya birden fazla sütun sorunsuzca işlenir.

Varsayılan olarak desteklenen ayırıcılar değişken olduğu dinamik ortamlar için geçici bir sep de kullanabilirsiniz.

Çıktı

İlk olarak, çok sayfalı Excel dosyamızdan üretilen CSV dosyalarını burada görebilirsiniz:

C# dilinde virgüllerle CSV Dosyalarını Okuma: Şekil 2 - CSV dosyaları

Ve bu, Excel sayfalarından biri ile karşılık gelen CSV dosyasının örnek bir karşılaştırması:

C# dilinde virgüllerle CSV Dosyalarını Okuma: Şekil 3 - Örnek çıktı

DataTable'dan CSV'ye Dışa Aktarma

Veritabanı ile çalışan uygulamalar için, IronXL DataTable dışa aktarmalarını kolaylaştırır. Açık olmak için tipik bir ref var v yerine, var'yi Datarow'a ayarlıyoruz.

// 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 yapılırken, dataTable.Rows koleksiyonundaki her satır yatay veri seti, çalışma sayfasında yeni bir satır haline gelir. IronXL, dönüşüm sırasında veri türlerini korur, yani sayılar sayısal kalır, tarihler formatını korur ve metin özel karakterleri doğru şekilde işler, ek bir yapılandırma gerektirmez.

Çıktı

Burada, sahte veri kaynağını çıkış CSV dosyasının yanında görebilirsiniz:

C# dilinde virgüllerle CSV Dosyalarını Okuma: Şekil 4 - DataTable'ı CSV çıktısına aktarma

IronXL vs CsvHelper: Yazılı Metin Dosyaları İçin Yan Yana Karşılaştırma

Bu çalışan verileri ihracat senaryosunu, CSV ayrıştırma ve yazma iş akışlarını göstererek 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üşüm

Formül Değerlendirmesi

Çoklu Sayfa İşleme

Veri Türü Korunumu

Manuel

Otomatik

Excel Formatı Desteği

XLSX, XLS, XLSM

MS Office Gerekmez

CsvHelper, basit yazma sütun operasyonlarını etkin bir şekilde işlerken, IronXL birden fazla satırla çalışma esnekliği sağlar, interpolated string'lerle, dinamik kod oluşturma senaryolarıyla ve hatta ref struct bağlantısı gibi yapılarla düşük seviyeli optimizasyonlar sağlamasına olanak tanır.

Geliştiriciler, belirli kriterlerle eşleşen satırları numaralandırabilir, varsayılan otomatik çıkarılan ayırıcıları yönetebilir veya sadece her girişin anahtarını hata ayıklama için gösteren basit konsol programlarıyla satıra özgü işlevselliği test edebilir.

Kurumsal Özellikler ve En İyi Uygulamalar

IronXL'in SaveAsCsv yöntemi kurumsal sınıf yetenekler içerir:

  • Özel ayırıcılar: Virgül, noktalı virgül, sekme veya herhangi bir karakter desteği (varsayılan ayırıcı sep ile değiştirilebilir)
  • Kodlama seçenekleri: UTF-8, UTF-16 ve özel kodlamalar
  • Formül değerlendirmesi: Excel formülleri dışa aktarma öncesi hesaplanır
  • Çapraz platform desteği: Windows, Linux ve macOS'ta çalışır

Geliştiriciler, verimli işlem için birden çok sütuna erişmek ya da metin kaydırma gerektiğinde birden fazla satıra uzanan CSV satırları yazmak için uzantı yöntemleri de uygulayabilir.

Yaygın Sorunlar ve Çözümler

CSV dışa aktarımlarıyla çalışırken, geliştiriciler genellikle bu zorluklarla karşılaşır:

  • Verilerdeki özel karakterler: IronXL otomatik olarak tırnak işaretlerini, virgülleri ve yeni satırları kaçar
  • Büyük dosya yönetimi: Verileri parçalar halinde işlemek için çalışma sayfası aralıkları kullanın
  • Kodlama sorunları: Uluslararası karakterler için UTF-8 kodlaması belirtin
  • Eksik veri türleri: IronXL varsayılan olarak sayısal ve tarih formatlarını korur

Detaylı sorun giderme için, IronXL'in CSV belgelerine, API referansına ve destek kaynaklarına göz atın.

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

IronXL, CSV yazımını bir ayrıştırma zorluğundan basit bir işlem haline getirir. CSV işlevselliğini Excel defter 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 işlemlerinin karmaşıklığını ortadan kaldırır.

CSV iş akışlarınızı hızlandırmaya hazır mısınız? Ücretsiz denemenizi başlatın $liteLicense'dan başlayarak.

Sıkça Sorulan Sorular

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

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

IronXL, CSV dosyalarındaki tırnaklı alanları nasıl ele alır?

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

C# için CSV ayrıştırmak 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ı ayıklamak için harcadığı zamanı azaltır.

IronXL, özel karakterler içeren CSV dosyalarını yönetebilir mi?

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

IronXL'i 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ğiyle ayırt edilir. Kullanıcı dostu API'si ve kapsamlı işlevselliği, C#'ta CSV verileri ile çalışan geliştiriciler için tercih edilen bir seçim haline getirir.

IronXL ile büyük CSV dosyalarını 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, geniş veri kümeleriyle çalışan uygulamalar için uygundur.

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

IronXL, gömülü virgüller ve özel karakterleri olan CSV dosyalarını doğru bir şekilde ele alarak, veri ayrıştırma sırasında hataların meydana gelme olasılığını azaltır ve veri bütünlüğünü sağlar.

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