C# CSV Dosya Okuyucu: CSV Verilerini IronXL ile Ayrıştırma ve İşleme
CSV (Virgülle Ayrılmış Değerler) dosyaları, finansal raporlardan müşteri veri ihracatlarına kadar ticari uygulamalarda her yerdedir. CSV formatı yüzeyde aldatıcı derecede basittir, ancak üretim kodundaki ayrıştırması, alıntılanan alanlarla, birden fazla ayıraç türüyle, gömülü yeni satırlarla uğraşırken ve ham metni güçlü yazılmış .NET nesnelerine dönüştürme ihtiyacıyla hızlıca zorlaşabilir. IronXL, geliştiricilerin CSV verilerini minimum kodla Excel, XML veya diğer formatlara dönüştürmelerine olanak tanıyan kurumsal kullanıma hazır CSV işleme sunan bir .NET kütüphanesidir.
Bu kılavuz, C# CSV dosya okuyucu olarak IronXL'ın nasıl çalıştığını ve .NET 10 uygulamalarınıza nasıl entegre edebileceğinizi anlatır. IronXL'ı kendiniz deneyin, ücretsiz deneme lisansı ile birlikte çalışın ve CSV ve Excel görevlerini nasıl ele aldığını öğrenin.
CSV Okumak İçin IronXL Nasıl Kurulur?
IronXL'ı projenize eklemek sadece bir an alır. Visual Studio'da NuGet Paket Yöneticisi aracılığıyla veya .NET CLI veya PowerShell içindeki NuGet Paket Yöneticisi Konsolu'nu kullanarak komut satırından kurabilirsiniz. Her iki yöntem de aynı paketi kurar ve herhangi bir .NET 10 proje türü ile çalışır.
dotnet add package IronXL.Excel
Kurulum seçenekleri ve yapılandırma hakkında daha fazla ayrıntı için IronXL kurulum belgelerine göz atınız.
Kurulumdan sonra, ilk CSV dosyanızı okumanız çok az kod gerektirir. Aşağıdaki örnek, .NET 10 üst düzey ifadelerini kullanır:
using IronXL;
// Load CSV file
WorkBook workbook = WorkBook.LoadCSV("data.csv");
WorkSheet sheet = workbook.DefaultWorkSheet;
// Read a specific cell
string cellValue = sheet["A1"].StringValue;
// Iterate through all rows and cells
foreach (var row in sheet.Rows)
{
foreach (var cell in row)
{
Console.WriteLine(cell.StringValue);
}
}
using IronXL;
// Load CSV file
WorkBook workbook = WorkBook.LoadCSV("data.csv");
WorkSheet sheet = workbook.DefaultWorkSheet;
// Read a specific cell
string cellValue = sheet["A1"].StringValue;
// Iterate through all rows and cells
foreach (var row in sheet.Rows)
{
foreach (var cell in row)
{
Console.WriteLine(cell.StringValue);
}
}
Imports IronXL
' Load CSV file
Dim workbook As WorkBook = WorkBook.LoadCSV("data.csv")
Dim sheet As WorkSheet = workbook.DefaultWorkSheet
' Read a specific cell
Dim cellValue As String = sheet("A1").StringValue
' Iterate through all rows and cells
For Each row In sheet.Rows
For Each cell In row
Console.WriteLine(cell.StringValue)
Next
Next
The WorkBook.LoadCSV metodu başlık tanımlamasını işler, dahili veri yapısı oluşturur ve bellek verimli bir şekilde ayrıştırma yapar -- böylece veri yönetiminizi ilk kod satırından itibaren basitleştirir.

Özel Ayıraçlarla CSV Dosyaları Nasıl Okunur?
Gerçek dünya CSV dosyaları her zaman virgül kullanmaz. Noktalı virgüller, borular ve sekmeler, özellikle virgüllerin ondalık ayırıcı olarak hizmet ettiği uluslararası veri kümelerinde yaygın alternatiflerdir. IronXL, esnek yükleme seçenekleri aracılığıyla herhangi bir ayıracı yönetir.
using IronXL;
// Load CSV with semicolon delimiter (common in European data exports)
WorkBook workbook = WorkBook.LoadCSV("european-data.csv",
fileFormat: ExcelFileFormat.XLSX,
listDelimiter: ";");
// Load tab-separated values (TSV)
WorkBook tsvWorkbook = WorkBook.LoadCSV("export_data.tsv",
fileFormat: ExcelFileFormat.XLSX,
listDelimiter: "\t");
// Load pipe-delimited file
WorkBook pipeWorkbook = WorkBook.LoadCSV("log_export.csv",
fileFormat: ExcelFileFormat.XLSX,
listDelimiter: "|");
// Access data normally after loading
WorkSheet sheet = workbook.DefaultWorkSheet;
decimal totalSales = sheet["B2:B10"].Sum();
Console.WriteLine($"Total sales: {totalSales}");
using IronXL;
// Load CSV with semicolon delimiter (common in European data exports)
WorkBook workbook = WorkBook.LoadCSV("european-data.csv",
fileFormat: ExcelFileFormat.XLSX,
listDelimiter: ";");
// Load tab-separated values (TSV)
WorkBook tsvWorkbook = WorkBook.LoadCSV("export_data.tsv",
fileFormat: ExcelFileFormat.XLSX,
listDelimiter: "\t");
// Load pipe-delimited file
WorkBook pipeWorkbook = WorkBook.LoadCSV("log_export.csv",
fileFormat: ExcelFileFormat.XLSX,
listDelimiter: "|");
// Access data normally after loading
WorkSheet sheet = workbook.DefaultWorkSheet;
decimal totalSales = sheet["B2:B10"].Sum();
Console.WriteLine($"Total sales: {totalSales}");
Imports IronXL
' Load CSV with semicolon delimiter (common in European data exports)
Dim workbook As WorkBook = WorkBook.LoadCSV("european-data.csv", fileFormat:=ExcelFileFormat.XLSX, listDelimiter:=";")
' Load tab-separated values (TSV)
Dim tsvWorkbook As WorkBook = WorkBook.LoadCSV("export_data.tsv", fileFormat:=ExcelFileFormat.XLSX, listDelimiter:=vbTab)
' Load pipe-delimited file
Dim pipeWorkbook As WorkBook = WorkBook.LoadCSV("log_export.csv", fileFormat:=ExcelFileFormat.XLSX, listDelimiter:="|")
' Access data normally after loading
Dim sheet As WorkSheet = workbook.DefaultWorkSheet
Dim totalSales As Decimal = sheet("B2:B10").Sum()
Console.WriteLine($"Total sales: {totalSales}")
listDelimiter parametresi herhangi bir dize kabul eder, bu da size ayrıştırma davranışını tam olarak kontrol etme imkanı sunar. IronXL, ayrıştırma sırasında sütun değerlerini ve veri türlerini korur -- sayısal değerler sayı olarak kalır, tarihler DateTime nesnesi olarak kalır ve formüller ilişkilerini sürdürür.
Tutarsız biçimlendirmeye sahip dosyalar için, IronXL hata yönetimi hatalı satırları uygulamayı çökertmeden yönetir, bu nedenle geçerli veriler, bireysel satırlar problem olsalar bile işlemeye devam eder.

Desteklenen Dosya Formatları ve Ayıraçlar
IronXL, CSV dosyalarını okurken aşağıdaki ayıraç türlerini yüklemeyi destekler:
| Ayıraç | Karakter | Yaygın Kullanım Durumu |
|---|---|---|
| Virgül | , |
Standart CSV, ABD-lokasyon dışarı aktarımları |
| Noktalı virgül | ; |
Avrupa lokasyon dışarı aktarımları (virgül ondalık ayırıcı olarak) |
| Sekme | |
Sekme ile ayrılmış değerler (TSV), veritabanı dışarı aktarımları |
| Borular | | |
Log dosyaları, sistem dışarı aktarımları |
| Özel dize | Herhangi | Özel veri formatları, çok karakterli ayıraçlar |
CSV Verilerini C# Nesnelerine Nasıl Ayrıştırırsınız?
CSV satırlarını güçlü tipli nesnelere dönüştürmek, veri işleme işlemlerini basitleştirir ve LINQ işlemlerine olanak tanır. IronXL, hücre erişim yöntemleri ile bu eşlemeyi kolaylaştırır. Aşağıdaki kod, .NET 10 üst düzey ifadeleri kullanarak bir CSV dosyasını tipli nesne listesine nasıl eşleyeceğinizi göstermektedir:
using IronXL;
// Define a typed model matching your CSV structure
public record Product(string Name, decimal Price, int Stock, DateTime? LastUpdated);
// Load and parse CSV file
WorkBook workbook = WorkBook.LoadCSV("inventory.csv");
WorkSheet sheet = workbook.DefaultWorkSheet;
var products = new List<Product>();
// Start from row 2 to skip the header row
for (int row = 2; row <= sheet.RowCount; row++)
{
products.Add(new Product(
Name: sheet[$"A{row}"].StringValue,
Price: sheet[$"B{row}"].DecimalValue,
Stock: sheet[$"C{row}"].IntValue,
LastUpdated: sheet[$"D{row}"].DateTimeValue
));
}
// Use LINQ for analysis after loading
var lowStock = products.Where(p => p.Stock < 10).ToList();
var highValue = products.Where(p => p.Price > 100m).OrderByDescending(p => p.Price).ToList();
Console.WriteLine($"Products with low stock: {lowStock.Count}");
Console.WriteLine($"High-value products: {highValue.Count}");
using IronXL;
// Define a typed model matching your CSV structure
public record Product(string Name, decimal Price, int Stock, DateTime? LastUpdated);
// Load and parse CSV file
WorkBook workbook = WorkBook.LoadCSV("inventory.csv");
WorkSheet sheet = workbook.DefaultWorkSheet;
var products = new List<Product>();
// Start from row 2 to skip the header row
for (int row = 2; row <= sheet.RowCount; row++)
{
products.Add(new Product(
Name: sheet[$"A{row}"].StringValue,
Price: sheet[$"B{row}"].DecimalValue,
Stock: sheet[$"C{row}"].IntValue,
LastUpdated: sheet[$"D{row}"].DateTimeValue
));
}
// Use LINQ for analysis after loading
var lowStock = products.Where(p => p.Stock < 10).ToList();
var highValue = products.Where(p => p.Price > 100m).OrderByDescending(p => p.Price).ToList();
Console.WriteLine($"Products with low stock: {lowStock.Count}");
Console.WriteLine($"High-value products: {highValue.Count}");
Imports IronXL
' Define a typed model matching your CSV structure
Public Class Product
Public Property Name As String
Public Property Price As Decimal
Public Property Stock As Integer
Public Property LastUpdated As DateTime?
Public Sub New(name As String, price As Decimal, stock As Integer, lastUpdated As DateTime?)
Me.Name = name
Me.Price = price
Me.Stock = stock
Me.LastUpdated = lastUpdated
End Sub
End Class
' Load and parse CSV file
Dim workbook As WorkBook = WorkBook.LoadCSV("inventory.csv")
Dim sheet As WorkSheet = workbook.DefaultWorkSheet
Dim products As New List(Of Product)()
' Start from row 2 to skip the header row
For row As Integer = 2 To sheet.RowCount
products.Add(New Product(
Name:=sheet($"A{row}").StringValue,
Price:=sheet($"B{row}").DecimalValue,
Stock:=sheet($"C{row}").IntValue,
LastUpdated:=sheet($"D{row}").DateTimeValue
))
Next
' Use LINQ for analysis after loading
Dim lowStock = products.Where(Function(p) p.Stock < 10).ToList()
Dim highValue = products.Where(Function(p) p.Price > 100D).OrderByDescending(Function(p) p.Price).ToList()
Console.WriteLine($"Products with low stock: {lowStock.Count}")
Console.WriteLine($"High-value products: {highValue.Count}")
IronXL'nin yazılı değer özellikleri -- StringValue, DecimalValue, IntValue, DateTimeValue -- dönüştürmeleri güvenli bir şekilde ele alır, geçersiz veriler için varsayılan değerler döndürerek istisna fırlatmak yerine. Bu savunmacı yaklaşım, uygulamaların mükemmel olmayan verileri kesinti olmadan yönetmesini sağlar. Bu C# 9'da tanıtılan C# kayıt türleri ile doğal olarak eşleştirilir ve eşlenen CSV satırları için kısa, değiştirilemez bir veri modeli sağlar.
IronXL özellikler sayfası, hücre verilerini okumak için mevcut değer erişim türlerinin tam bir özetini sağlar.

CSV Verilerini LINQ ile Nasıl Filtreler ve Sorgularsınız?
CSV verileri bir WorkSheet içine yüklendiğinde, aralık seçicileri ile çalışabilir veya nesnelere dönüştürüp LINQ sorguları için kullanabilirsiniz. Basit sütun işlemleri için aralık temelli erişim en doğrudan yoldur:
using IronXL;
WorkBook workbook = WorkBook.LoadCSV("sales-data.csv");
WorkSheet sheet = workbook.DefaultWorkSheet;
// Read entire columns using range notation
var productNames = sheet["A2:A100"]
.Select(cell => cell.StringValue)
.Where(name => !string.IsNullOrEmpty(name))
.ToList();
// Aggregate numeric columns directly
decimal totalRevenue = sheet["C2:C100"].Sum();
decimal averageOrder = sheet["C2:C100"].Avg();
Console.WriteLine($"Products loaded: {productNames.Count}");
Console.WriteLine($"Total revenue: {totalRevenue:C}");
Console.WriteLine($"Average order value: {averageOrder:C}");
using IronXL;
WorkBook workbook = WorkBook.LoadCSV("sales-data.csv");
WorkSheet sheet = workbook.DefaultWorkSheet;
// Read entire columns using range notation
var productNames = sheet["A2:A100"]
.Select(cell => cell.StringValue)
.Where(name => !string.IsNullOrEmpty(name))
.ToList();
// Aggregate numeric columns directly
decimal totalRevenue = sheet["C2:C100"].Sum();
decimal averageOrder = sheet["C2:C100"].Avg();
Console.WriteLine($"Products loaded: {productNames.Count}");
Console.WriteLine($"Total revenue: {totalRevenue:C}");
Console.WriteLine($"Average order value: {averageOrder:C}");
Imports IronXL
Dim workbook As WorkBook = WorkBook.LoadCSV("sales-data.csv")
Dim sheet As WorkSheet = workbook.DefaultWorkSheet
' Read entire columns using range notation
Dim productNames = sheet("A2:A100") _
.Select(Function(cell) cell.StringValue) _
.Where(Function(name) Not String.IsNullOrEmpty(name)) _
.ToList()
' Aggregate numeric columns directly
Dim totalRevenue As Decimal = sheet("C2:C100").Sum()
Dim averageOrder As Decimal = sheet("C2:C100").Avg()
Console.WriteLine($"Products loaded: {productNames.Count}")
Console.WriteLine($"Total revenue: {totalRevenue:C}")
Console.WriteLine($"Average order value: {averageOrder:C}")
Bu aralık temelli yaklaşım, basit toplamalarda satır satır yinelemeden kaçınarak, daha büyük dosyalar üzerinde performansı artırır. Desteklenen aralık işlemlerinin tam listesi için IronXL belgelerine bakınız.
C#'de CSV Formatını Excel Formatına Nasıl Dönüştürürsünüz?
Birçok iş akışı, gelişmiş analiz, biçimlendirme veya dağıtım için Excel formatında CSV verilere gereksinim duyar. IronXL, tüm veri bütünlüğünü korurken bu dönüşümü kolaylaştırır.
using IronXL;
// Load CSV file
WorkBook csvWorkbook = WorkBook.LoadCSV("monthly-report.csv");
WorkSheet sheet = csvWorkbook.DefaultWorkSheet;
// Apply formatting before saving
sheet["A1:D1"].Style.Font.Bold = true;
sheet["A1:D1"].Style.BackgroundColor = "#4472C4";
sheet["A1:D1"].Style.Font.Color = "#FFFFFF";
// Apply currency format to price column
sheet["B2:B1000"].FormatString = "$#,##0.00";
// Apply date format to date column
sheet["D2:D1000"].FormatString = "yyyy-MM-dd";
// Save as Excel with a single method call
csvWorkbook.SaveAs("monthly-report.xlsx");
Console.WriteLine("Conversion complete: monthly-report.xlsx");
using IronXL;
// Load CSV file
WorkBook csvWorkbook = WorkBook.LoadCSV("monthly-report.csv");
WorkSheet sheet = csvWorkbook.DefaultWorkSheet;
// Apply formatting before saving
sheet["A1:D1"].Style.Font.Bold = true;
sheet["A1:D1"].Style.BackgroundColor = "#4472C4";
sheet["A1:D1"].Style.Font.Color = "#FFFFFF";
// Apply currency format to price column
sheet["B2:B1000"].FormatString = "$#,##0.00";
// Apply date format to date column
sheet["D2:D1000"].FormatString = "yyyy-MM-dd";
// Save as Excel with a single method call
csvWorkbook.SaveAs("monthly-report.xlsx");
Console.WriteLine("Conversion complete: monthly-report.xlsx");
Imports IronXL
' Load CSV file
Dim csvWorkbook As WorkBook = WorkBook.LoadCSV("monthly-report.csv")
Dim sheet As WorkSheet = csvWorkbook.DefaultWorkSheet
' Apply formatting before saving
sheet("A1:D1").Style.Font.Bold = True
sheet("A1:D1").Style.BackgroundColor = "#4472C4"
sheet("A1:D1").Style.Font.Color = "#FFFFFF"
' Apply currency format to price column
sheet("B2:B1000").FormatString = "$#,##0.00"
' Apply date format to date column
sheet("D2:D1000").FormatString = "yyyy-MM-dd"
' Save as Excel with a single method call
csvWorkbook.SaveAs("monthly-report.xlsx")
Console.WriteLine("Conversion complete: monthly-report.xlsx")
Dönüşüm, genellikle manuel dönüşüm yöntemleriyle sorun yaratan sayısal hassasiyet, tarih biçimleri ve özel karakterleri korur. IronXL, büyük veri kümeleriyle bile hızlı açılan verimli dosyalar yaratarak, ortaya çıkan Excel dosya yapısını otomatik olarak optimize eder.
Çıktı formatı üzerinde ek kontrol için ihracat rehberi, XLSX, XLS, CSV ve PDF gibi seçenekleri kapsar. Excel dosyalarını yazmayı ve sıfırdan Excel dosyaları oluşturmayı da öğrenebilirsiniz.

Veritabanı İşlemleri için CSV'yi DataSet'e Dönüştürme
CSV verilerini daha fazla işlem veya veritabanı ekleme için bir DataSet içine yüklemeniz gerektiğinde, IronXL doğrudan dönüşüm desteği sağlar. Excel'den DataSet'e rehberi bunu detaylı bir şekilde açıklar:
using IronXL;
using System.Data;
WorkBook workbook = WorkBook.LoadCSV("customer-export.csv");
// Convert entire workbook to DataSet
DataSet dataSet = workbook.ToDataSet();
// The first sheet becomes the first DataSekmele
DataTable customerTable = dataSet.Tables[0];
Console.WriteLine($"Rows loaded: {customerTable.Rows.Count}");
Console.WriteLine($"Columns: {customerTable.Columns.Count}");
// Process with standard ADO.NET
foreach (DataRow row in customerTable.Rows)
{
string name = row["Name"]?.ToString() ?? string.Empty;
string email = row["Email"]?.ToString() ?? string.Empty;
Console.WriteLine($"Customer: {name} <{email}>");
}
using IronXL;
using System.Data;
WorkBook workbook = WorkBook.LoadCSV("customer-export.csv");
// Convert entire workbook to DataSet
DataSet dataSet = workbook.ToDataSet();
// The first sheet becomes the first DataSekmele
DataTable customerTable = dataSet.Tables[0];
Console.WriteLine($"Rows loaded: {customerTable.Rows.Count}");
Console.WriteLine($"Columns: {customerTable.Columns.Count}");
// Process with standard ADO.NET
foreach (DataRow row in customerTable.Rows)
{
string name = row["Name"]?.ToString() ?? string.Empty;
string email = row["Email"]?.ToString() ?? string.Empty;
Console.WriteLine($"Customer: {name} <{email}>");
}
Imports IronXL
Imports System.Data
Dim workbook As WorkBook = WorkBook.LoadCSV("customer-export.csv")
' Convert entire workbook to DataSet
Dim dataSet As DataSet = workbook.ToDataSet()
' The first sheet becomes the first DataTable
Dim customerTable As DataTable = dataSet.Tables(0)
Console.WriteLine($"Rows loaded: {customerTable.Rows.Count}")
Console.WriteLine($"Columns: {customerTable.Columns.Count}")
' Process with standard ADO.NET
For Each row As DataRow In customerTable.Rows
Dim name As String = If(row("Name")?.ToString(), String.Empty)
Dim email As String = If(row("Email")?.ToString(), String.Empty)
Console.WriteLine($"Customer: {name} <{email}>")
Next
Bu yaklaşım, ADO.NET iş akışları ile doğrudan entegre olur ve SQL Server, SQLite veya diğer ilişkisel veritabanlarına standart veri adaptörleri aracılığıyla CSV verilerini itmek için kullanışlıdır. Çünkü DataSet ve DataSekmele, çekirdek .NET türleridir, bu yol IronXL dışında ek bir bağımlılık gerektirmez.
Büyük CSV Dosyaları ve Performans Optimizasyonu Nasıl İdare Edilir?
Büyük CSV dosyalarını -- on binlerce satır veya daha fazla -- işlemek, verilere nasıl erişildiğine ve belleğin nasıl yönetildiğine dikkat etmeyi gerektirir. IronXL, büyük dosya senaryolarına yardımcı olan özellikler içerir.
Performans için Aralık İşlemleri Kullanma
Büyük veri kümeleriyle optimal performans için, tek tek hücrelere birer birer erişmek yerine aralık işlemlerini kullanın. Aralık işlemleri IronXL'nin dahili motoru tarafından daha verimli bir şekilde işlenir:
using IronXL;
WorkBook workbook = WorkBook.LoadCSV("large-dataset.csv");
WorkSheet sheet = workbook.DefaultWorkSheet;
int rowCount = sheet.RowCount;
int colCount = sheet.ColumnCount;
Console.WriteLine($"Dataset dimensions: {rowCount} rows x {colCount} columns");
// Efficient: read entire range at once
var allData = sheet[$"A1:{GetColumnLetter(colCount)}{rowCount}"]
.Select(cell => cell.StringValue)
.ToList();
// Efficient: aggregate a column without row-by-row iteration
decimal columnSum = sheet[$"B2:B{rowCount}"].Sum();
Console.WriteLine($"Column B total: {columnSum}");
static string GetColumnLetter(int col)
{
string result = string.Empty;
while (col > 0)
{
col--;
result = (char)('A' + col % 26) + result;
col /= 26;
}
return result;
}
using IronXL;
WorkBook workbook = WorkBook.LoadCSV("large-dataset.csv");
WorkSheet sheet = workbook.DefaultWorkSheet;
int rowCount = sheet.RowCount;
int colCount = sheet.ColumnCount;
Console.WriteLine($"Dataset dimensions: {rowCount} rows x {colCount} columns");
// Efficient: read entire range at once
var allData = sheet[$"A1:{GetColumnLetter(colCount)}{rowCount}"]
.Select(cell => cell.StringValue)
.ToList();
// Efficient: aggregate a column without row-by-row iteration
decimal columnSum = sheet[$"B2:B{rowCount}"].Sum();
Console.WriteLine($"Column B total: {columnSum}");
static string GetColumnLetter(int col)
{
string result = string.Empty;
while (col > 0)
{
col--;
result = (char)('A' + col % 26) + result;
col /= 26;
}
return result;
}
Imports IronXL
Dim workbook As WorkBook = WorkBook.LoadCSV("large-dataset.csv")
Dim sheet As WorkSheet = workbook.DefaultWorkSheet
Dim rowCount As Integer = sheet.RowCount
Dim colCount As Integer = sheet.ColumnCount
Console.WriteLine($"Dataset dimensions: {rowCount} rows x {colCount} columns")
' Efficient: read entire range at once
Dim allData = sheet($"A1:{GetColumnLetter(colCount)}{rowCount}") _
.Select(Function(cell) cell.StringValue) _
.ToList()
' Efficient: aggregate a column without row-by-row iteration
Dim columnSum As Decimal = sheet($"B2:B{rowCount}").Sum()
Console.WriteLine($"Column B total: {columnSum}")
Private Shared Function GetColumnLetter(col As Integer) As String
Dim result As String = String.Empty
While col > 0
col -= 1
result = ChrW(AscW("A"c) + col Mod 26) & result
col \= 26
End While
Return result
End Function
IronXL, CSV dosyalarını yüklerken, uluslararası karakterlerin sütun değerlerinde doğru görüntülenmesini sağlamak için, ek bir yapılandırma gerektirmeksizin metin kodlaması varyasyonlarını (UTF-8, UTF-16, ASCII) otomatik olarak yönetir. Bu, UTF-8 BOM veya alternatif kodlamaların yaygın olduğu bölgelerdeki sistemlerden ihraç edilen dosyalar için özellikle önemlidir.
Güvenilmeyen CSV Kaynakları için Hata Yönetimi
Güvenilmeyen veya değişken kaynaklardan gelen CSV dosyalarını işlerken, işlemleri try-catch bloklarına sarmak ekstra bir güvenlik katmanı sağlar:
using IronXL;
string filePath = "user-uploaded-data.csv";
try
{
WorkBook workbook = WorkBook.LoadCSV(filePath);
WorkSheet sheet = workbook.DefaultWorkSheet;
Console.WriteLine($"Loaded {sheet.RowCount} rows from {filePath}");
for (int row = 2; row <= sheet.RowCount; row++)
{
string value = sheet[$"A{row}"].StringValue;
if (!string.IsNullOrWhiteSpace(value))
{
Console.WriteLine(value);
}
}
}
catch (IronXL.Exceptions.IronXLException ex)
{
Console.WriteLine($"IronXL error reading {filePath}: {ex.Message}");
}
catch (IOException ex)
{
Console.WriteLine($"File access error: {ex.Message}");
}
using IronXL;
string filePath = "user-uploaded-data.csv";
try
{
WorkBook workbook = WorkBook.LoadCSV(filePath);
WorkSheet sheet = workbook.DefaultWorkSheet;
Console.WriteLine($"Loaded {sheet.RowCount} rows from {filePath}");
for (int row = 2; row <= sheet.RowCount; row++)
{
string value = sheet[$"A{row}"].StringValue;
if (!string.IsNullOrWhiteSpace(value))
{
Console.WriteLine(value);
}
}
}
catch (IronXL.Exceptions.IronXLException ex)
{
Console.WriteLine($"IronXL error reading {filePath}: {ex.Message}");
}
catch (IOException ex)
{
Console.WriteLine($"File access error: {ex.Message}");
}
Imports IronXL
Module Module1
Sub Main()
Dim filePath As String = "user-uploaded-data.csv"
Try
Dim workbook As WorkBook = WorkBook.LoadCSV(filePath)
Dim sheet As WorkSheet = workbook.DefaultWorkSheet
Console.WriteLine($"Loaded {sheet.RowCount} rows from {filePath}")
For row As Integer = 2 To sheet.RowCount
Dim value As String = sheet($"A{row}").StringValue
If Not String.IsNullOrWhiteSpace(value) Then
Console.WriteLine(value)
End If
Next
Catch ex As IronXL.Exceptions.IronXLException
Console.WriteLine($"IronXL error reading {filePath}: {ex.Message}")
Catch ex As IOException
Console.WriteLine($"File access error: {ex.Message}")
End Try
End Sub
End Module
IronXL nasıl yapılır rehberleri dosyalar, akışlar ve bayt dizileri dahil çeşitli kaynaklardan veri alma desenlerini kapsar.

Çapraz Platform Dağıtımı
IronXL, Microsoft Office'ten bağımsız çalışır, bu da onu sunucu ortamları ve bulut dağıtımları için uygun hale getirir. İster Windows, Linux, macOS, Docker konteynerleri üzerinde, ister Azure veya AWS'deki bulut işlevlerinde dağıtım yapıyor olun, IronXL tüm platformlarda yapılandırma değişikliği gerektirmeden tutarlı sonuçlar sunar.
Bu çapraz platform yeteneği, veri işleme görevlerini hafif konteynerler aracılığıyla yönetilen mikro hizmet mimarileri için değerlidir. IronXL özellikler görünümü, desteklenen ortamlar ve çalışma zamanı hedeflerinin tam listesini detaylandırır.
IronXL Lisansı Nasıl Alınır?
IronXL, üretim ortamlarında kullanım için bir lisans anahtarı gerektirir. Değerlendirme için ücretsiz deneme lisansı mevcuttur ve ticari lisanslar bireysel geliştiriciler, ekipler ve organizasyonlar için mevcuttur.
Herhangi bir IronXL çağrısı yapmadan önce uygulamanıza lisans anahtarını uygulayın:
using IronXL;
// Apply license key at application startup
IronXL.License.LicenseKey = "YOUR-LICENSE-KEY-HERE";
// Verify the license is active
if (IronXL.License.IsValidLicense("YOUR-LICENSE-KEY-HERE"))
{
Console.WriteLine("IronXL license is active.");
}
// Now use IronXL normally
WorkBook workbook = WorkBook.LoadCSV("data.csv");
WorkSheet sheet = workbook.DefaultWorkSheet;
Console.WriteLine($"Loaded {sheet.RowCount} rows.");
using IronXL;
// Apply license key at application startup
IronXL.License.LicenseKey = "YOUR-LICENSE-KEY-HERE";
// Verify the license is active
if (IronXL.License.IsValidLicense("YOUR-LICENSE-KEY-HERE"))
{
Console.WriteLine("IronXL license is active.");
}
// Now use IronXL normally
WorkBook workbook = WorkBook.LoadCSV("data.csv");
WorkSheet sheet = workbook.DefaultWorkSheet;
Console.WriteLine($"Loaded {sheet.RowCount} rows.");
Imports IronXL
' Apply license key at application startup
IronXL.License.LicenseKey = "YOUR-LICENSE-KEY-HERE"
' Verify the license is active
If IronXL.License.IsValidLicense("YOUR-LICENSE-KEY-HERE") Then
Console.WriteLine("IronXL license is active.")
End If
' Now use IronXL normally
Dim workbook As WorkBook = WorkBook.LoadCSV("data.csv")
Dim sheet As WorkSheet = workbook.DefaultWorkSheet
Console.WriteLine($"Loaded {sheet.RowCount} rows.")
Deneme ve lisanslama seçenekleri için, IronXL lisanslama sayfasını ziyaret edin.
CSV İşleme için IronXL'yi Neden Seçmeliyim?
IronXL, C# CSV dosyası okumasını zahmetli bir ayrıştırma görevinden kolay bir işlem haline getirir. Kütüphane, manuel ayrıştırmanın yanlış yaptığı gömülü virgüller, tırnak içine alınmış alanlardaki yeni satırlar, tutarsız sınırlayıcılar, kodlama varyasyonları ve hatalı satırlar gibi yaygın kenar durumlarını işleyebilir ve her senaryo için özel kod gerektirmez. İster hızlı bir kerelik veri içe aktarma ister günde binlerce dosya işleyen bir üretim hattına ihtiyaç duyun, aynı API her iki bağlamda da çalışır.
Manuel CSV ayrıştırma string.Split veya StreamReader ile alıntılanmış alanlar sınırlayıcı karakter içerdiğinde veya alan değerleri içinde satır sonları belirdiğinde hızla çöker. IronXL, tırnak içine alınmış alan işleme ve kaçış dizileri için CSV spesifikasyonunu izleyerek varsayılan olarak bu durumları doğru bir şekilde ele alır.
IronXL'yi .NET 10'da CSV işleri için ayıran temel avantajlar:
- Ofis bağımlılığı yok: Sunucu ve bulut dağıtımları, Microsoft Office veya herhangi bir COM geçişkesi yüklemeden çalışır
- Özel sınırlayıcılar: Herhangi bir sınırlayıcı karakter veya dize
listDelimiterparametresinde desteklenir - Tür güvenli hücre erişimi:
StringValue,DecimalValue,IntValueveDateTimeValueerişimcileri kötü veri üzerinde hata vermek yerine güvenli varsayılan değerler döndürür - Aralık operasyonları: Satır satır yineleme olmadan aralıklar arasında veri toplama ve sorgulama
- Format dönüşümü: CSV'yi yükle ve aynı iş akışında XLSX, XLS, PDF veya diğer formatlar olarak kaydet
- DataSet entegrasyonu: Yüklenen çalışma kitaplarını
DataSet/DataSekmele'a dönüştürerek ADO.NET ve veritabanı operasyonları için kullanın - Çapraz platform: Windows, Linux, macOS, Docker ve bulut ortamlarında değişiklik yapmadan çalışır
IronXL belgeleri ve hücre biçimlendirme rehberi, biçimlendirme, formül desteği ve gelişmiş çalışma kitabı işlemleri hakkında daha fazla detay sağlar.
CSV dosyalarını güvenle yönetmeye hazır mısınız? Ücretsiz bir deneme ile başlayın ve IronXL özellik setini keşfedin.
Sıkça Sorulan Sorular
CSV dosyası nedir ve neden yaygın olarak kullanılır?
CSV dosyası veya virgülle ayrılmış değerler dosyası, tablo verilerini saklamak için basit bir metin formatıdır. Basitliği ve kullanım kolaylığı nedeniyle, iş uygulamalarında farklı sistemler arasında veri ihraç etmek ve ithal etmek için yaygın olarak kullanılır.
IronXL, C#'da CSV dosya ayrıştırmasına nasıl yardımcı olur?
IronXL, farklı sütun ayırıcıları, tırnak içindeki alanlar ve veri türü dönüşümleri gibi karmaşık CSV yapılarıyla başa çıkmak için kapsamlı araçlar sağlayarak C#'da CSV dosya ayrıştırmasını kolaylaştırır.
IronXL, CSV verilerini diğer formatlara dönüştürebilir mi?
Evet, IronXL geliştiricilerin verilerini XML ve Excel gibi farklı formatlara dönüştürmesine olanak tanır, bu da veri işleme ihtiyaçları için çok yönlülük sağlar.
CSV dosya ayrıştırma ile ilgili bazı yaygın zorluklar nelerdir?
Yaygın zorluklar arasında farklı sütun ayırıcılarıyla başa çıkmak, tırnak içindeki alanları yönetmek ve doğru veri türü dönüşümleri gerçekleştirmek bulunur. IronXL, gelişmiş ayrıştırma yetenekleri ile bu sorunları hafifletmeye yardımcı olur.
IronXL, kurumsal düzeyde CSV işlemesi için uygun mu?
Evet, IronXL, güçlü ve ölçeklenebilir CSV dosya işleme çözümleri sağlayarak .NET uygulamaları için kurumsal olmaya hazır olacak şekilde tasarlanmıştır.
IronXL, büyük CSV dosyalarını verimli bir şekilde işleyebilir mi?
IronXL, performans için optimize edilmiştir, böylece büyük CSV dosyalarını hızlı ve doğru bir şekilde işleyebilir.
IronXL, özel sınırlayıcılarla CSV dosyalarını işleyebilir mi?
Evet, IronXL, özel sınırlayıcıları olan CSV dosyalarını destekler, geliştiricilere standart olmayan CSV formatları ile çalışırken esneklik sağlar.
IronXL, CSV dosyalarında tırnak içindeki alanları nasıl yönetir?
IronXL, CSV dosyalarındaki tırnak içindeki alanları doğru bir şekilde ayrıştırarak, veri bütünlüğünü ve okuma sürecinde düzgün dönüşümünü sağlar.
CSV ayrıştırma için hangi programlama dilleri IronXL ile kullanılabilir?
IronXL bir .NET kütüphanesidir, dolayısıyla .NET frameworku tarafından desteklenen C# ve VB.NET gibi diller ile kullanılabilir.
IronXL ile CSV dosyalarını kullanma eğitici kod örnekleri var mı?
Evet, IronXL'nın belgeleri, C# uygulamalarında CSV dosyalarını okuma, ayrıştırma ve işleme için komple kod örnekleri sağlar.




