
C#'da CSV'yi Datatable'a Nasıl İçe Aktarılır
CSV (virgülle ayrılmış değerler) dosyalarını C# içinde DataTable'a IronXL kullanarak aktarmaya yönelik bu başlangıç seviyesindeki eğitime hoş geldiniz. Bu kılavuz, C#'a yeni olsanız bile bu süreci kolayca takip etmenizi sağlamak için size kolay bir yaklaşım sunacaktır. Ortamı kurmaktan kaynak kodunu yazmaya kadar her adımı ele alacağız. Bu eğitimin sonunda, CSV verilerini bir DataTable'a nasıl dönüştüreceğinizi, DataTable sütunlarını nasıl yöneteceğinizi ve bir dosya okuyucu ve IronXL kullanarak C# içinde CSV belgelerinin çeşitli yönleriyle nasıl başa çıkacağınızı net bir şekilde anlayacaksınız.
Ön Koşullar
Başlamadan önce, şu şeylere sahip olduğunuzdan emin olun:
- C# hakkında temel bilgi
- Yerel makinenizde yüklü Visual Studio NuGet Paket Yöneticisi aracılığıyla temin edilebilecek IronXL kütüphanesi
Temelleri Anlamak
CSV Dosyası Nedir?
Bir CSV dosyası (Virgülle Ayrılmış Değerler dosyası), tablo verilerini düzenlemek için belirli bir yapılandırma kullanan bir tür düz metin dosyasıdır. CSV, basit, kompakt ve birçok platformla uyumlu olduğu için veri değişimi için yaygın bir formattır. Bir CSV dosyasında, veriler virgüllerle ayrılır ve her yeni satır yeni bir satırı belirtir, genellikle sütun başlıkları ilk satırda bulunur.
Understanding DataTables in C#
DataTable, C#'de ADO.NET kütüphanesinin bir parçasıdır ve bellekteki verilerin tek bir tablosunu temsil eder. Satırlar ve sütunlar içerir ve her sütun farklı bir veri tipine sahip olabilir. DataTables son derece esnektir ve verileri yapılandırılmış bir formatta temsil edebilir, bu da onları CSV dosya verilerini işlemek için ideal hale getirir.
Projenizi Kurma
Adım 1: Yeni Bir C# Projesi Oluşturun
- Visual Studio'yu açın.
- Dosya > Yeni > Proje seçin.
- Bir C# Konsol veya Windows Forms uygulaması seçin ve uygun bir isim verin.
Adım 2: IronXL'i Kurun
IronXL, C# dilinde Excel ve CSV dosyaları ile çalışmanızı sağlayan güçlü bir kütüphanedir. Onu kullanmak için, NuGet Paket Yöneticisi üzerinden yüklemeniz gerekir. Visual Studio'da:
-
Araçlar > NuGet Paket Yöneticisi > Çözüm için NuGet Paketlerini Yönet kısmına gidin.
-
IronXL.Excel arayın.

-
Paketi projenize kurun.
IronXL ile CSV Dosyalarını DataTable'lara Okuma
Adım 1: Ortamınızı Ayarlayın
using IronXL;
using System.Data;Imports IronXL
Imports System.DataBu using ifadeleri, görevimiz için gerekli olan ad alanlarını içerir.
Adım 2: CSV İçe Aktarma Yöntemi Oluşturma
CsvToDataTable sınıfını tanımlayın ve ImportCsvToDataTable adında bir statik metot ekleyin. Bu yöntem, CSV dosyasını bir DataTable'a dönüştürmekten sorumlu olacak.
public class CsvToDataTable
{
public static DataTable ImportCsvToDataTable(string filePath)
{
// Code snippet to import CSV will be placed here
return null; // Placeholder return statement
}
}Public Class CsvToDataTable
Public Shared Function ImportCsvToDataTable(ByVal filePath As String) As DataTable
' Code snippet to import CSV will be placed here
Return Nothing ' Placeholder return statement
End Function
End ClassAdım 3: CSV Dosyasını Yükleyin
ImportCsvToDataTable yöntemi içinde, CSV dosyasını yükleyerek başlayın. IronXL bunu yapmak için basit bir yol sağlar:
// Load the CSV file
WorkBook workbook = WorkBook.LoadCSV(filePath);' Load the CSV file
Dim workbook As WorkBook = WorkBook.LoadCSV(filePath)WorkBook.LoadCSV, IronXL içinde CSV dosyalarını yüklemek için bir yöntemdir. Burada, filePath sizin CSV dosyanızın yoludur.
Adım 4: CSV'yi DataTable'a Dönüştür
Yüklenen CSV verilerini bir DataTable'a dönüştürün. Bu adım, verilerin C# uygulaması içinde kolayca işlenebilir ve görüntülenebilir bir formata dönüştürülmesini sağladığı için çok önemlidir.
// Get the first worksheet
WorkSheet sheet = workbook.DefaultWorkSheet;
// Convert CSV worksheet to DataTable
DataTable dataTable = sheet.ToDataTable();
return dataTable;' Get the first worksheet
Dim sheet As WorkSheet = workbook.DefaultWorkSheet
' Convert CSV worksheet to DataTable
Dim dataTable As DataTable = sheet.ToDataTable()
Return dataTableBu kod parçası, CSV verilerini bir DataTable'a dönüştürür. DefaultWorkSheet, çalışma kitabından ilk çalışma sayfasını alır, CSV dosyası durumunda tüm CSV verilerine eşdeğerdir. ToDataTable yöntemi, IronXL'nin güçlü bir özelliğidir ve CSV verilerini etkili bir şekilde bir DataTable yapısına eşler, dosyanın ilk satırında varsa sütun başlık satırı dahil.
Adım 5: Yöntemi Uygulamanızda Kullanın
Şimdi, uygulamanızda ImportCsvToDataTable yöntemini kullanın. Örneğin, bu yöntemi uygulama başladığında veya kullanıcı bir CSV dosyası yüklediğinde çağırmak isteyebilirsiniz.
// Usage
string csvFilePath = "csvfile.csv";
DataTable dataTable = CsvToDataTable.ImportCsvToDataTable(csvFilePath);' Usage
Dim csvFilePath As String = "csvfile.csv"
Dim dataTable As DataTable = CsvToDataTable.ImportCsvToDataTable(csvFilePath)Bu kod parçası, ImportCsvToDataTable yönteminin nasıl çağrılacağını göstermektedir. "csvfile.csv" ifadesini CSV dosyanızın gerçek dosya yolu ile değiştirin.
Adım 6: Çıktı DataTable ile Çalışmak
DataTable'i elde ettikten sonra, kullanıcı arayüzünde verileri görüntüleme, filtreleme veya verileri işleme gibi çeşitli işlemler yapabilirsiniz. İşte bazı örnekler:
Bir Konsol Uygulamasında Verilerin Gösterilmesi
foreach (DataRow row in dataTable.Rows)
{
foreach (var item in row.ItemArray)
{
Console.Write($"{item} ");
}
Console.WriteLine();
}For Each row As DataRow In dataTable.Rows
For Each item In row.ItemArray
Console.Write($"{item} ")
Next item
Console.WriteLine()
Next rowBu kod, DataTable içindeki her satır ve sütunu iteratif olarak geçer ve verileri konsola yazdırır.
Veri Filtreleme
DataTable içinde verileri filtrelemek için LINQ kullanabilirsiniz. Örneğin, belirli bir sütunun bir koşulu karşıladığı satırları seçmek istiyorsanız:
var filteredRows = dataTable.AsEnumerable()
.Where(row => row.Field<string>("ColumnName") == "SomeValue");Dim filteredRows = dataTable.AsEnumerable().Where(Function(row) row.Field(Of String)("ColumnName") = "SomeValue")"ColumnName" ve "SomeValue" ile filtrelediğiniz sütun adını ve değeri değiştirin.
Tam Kod Parçası
İşte projeinizde kullanabileceğiniz tam kaynak kodu:
using IronXL;
using System;
using System.Data;
using System.IO;
public class CsvToDataTable
{
public static DataTable ImportCsvToDataTable(string filePath)
{
// Check if the file exists
if (!File.Exists(filePath))
{
throw new FileNotFoundException($"The file at {filePath} was not found.");
}
// Load the CSV file
WorkBook workbook = WorkBook.LoadCSV(filePath);
// Get the first worksheet
WorkSheet sheet = workbook.DefaultWorkSheet;
// Convert the worksheet to DataTable
DataTable dataTable = sheet.ToDataTable();
return dataTable;
}
}
class Program
{
static void Main(string[] args)
{
// Usage
try
{
string filePath = "sample_data.csv"; // CSV file path
DataTable dataTable = CsvToDataTable.ImportCsvToDataTable(filePath);
foreach (DataRow row in dataTable.Rows)
{
foreach (var item in row.ItemArray)
{
Console.Write($"{item} ");
}
Console.WriteLine();
}
}
catch (Exception ex)
{
Console.WriteLine($"An error occurred: {ex.Message}");
}
}
}Imports IronXL
Imports System
Imports System.Data
Imports System.IO
Public Class CsvToDataTable
Public Shared Function ImportCsvToDataTable(ByVal filePath As String) As DataTable
' Check if the file exists
If Not File.Exists(filePath) Then
Throw New FileNotFoundException($"The file at {filePath} was not found.")
End If
' Load the CSV file
Dim workbook As WorkBook = WorkBook.LoadCSV(filePath)
' Get the first worksheet
Dim sheet As WorkSheet = workbook.DefaultWorkSheet
' Convert the worksheet to DataTable
Dim dataTable As DataTable = sheet.ToDataTable()
Return dataTable
End Function
End Class
Friend Class Program
Shared Sub Main(ByVal args() As String)
' Usage
Try
Dim filePath As String = "sample_data.csv" ' CSV file path
Dim dataTable As DataTable = CsvToDataTable.ImportCsvToDataTable(filePath)
For Each row As DataRow In dataTable.Rows
For Each item In row.ItemArray
Console.Write($"{item} ")
Next item
Console.WriteLine()
Next row
Catch ex As Exception
Console.WriteLine($"An error occurred: {ex.Message}")
End Try
End Sub
End ClassBu kodu Program.cs dosyasında kullanabilirsiniz. Üretim ortamında çalışıyorsanız IronXL lisansını eklemeyi unutmayın.
Kodun Çıktısı
Kodu çalıştırdıktan sonra, CSV dosyası yüklenecek ve verileri DataTable'a aktarılacaktır. Ardından, DataTable sütunlarının içeriğini konsolda gösterecek. Verilerin doğru bir şekilde DataTable'a aktarıldığını doğrulamak yardımcı olur.

Farklı Senaryoları Yönetme
Gerçek dünya senaryolarında, CSV dosyaları biçim ve yapı bakımından önemli ölçüde farklılık gösterebilir. Uygulamanızın sağlam ve çok yönlü olmasını sağlamak için bu varyasyonları ele almak önemlidir. IronXL kullanarak bir DataTable'a CSV verilerini içe aktarırken farklı senaryoların nasıl yönetileceğini genişletelim.
Farklı Bir Ayırıcıyı Yönetme
Virgüller, CSV dosyalarında varsayılan ayırıcıdır. Ancak, CSV dosyaları her zaman değerleri ayırmak için virgül kullanmayabilir. Bazen noktalı virgül, sekme veya diğer karakterler ayraç olarak kullanılır. Bunu IronXL ile ele almak için:
Özel Ayırıcı Belirleme: CSV dosyasını yüklemeden önce dosyanızın ayırıcısını belirleyebilirsiniz. Örneğin, eğer dosyanız noktalı virgül (;) kullanıyorsa, bunu şu şekilde ayarlayabilirsiniz:
WorkBook workbook = WorkBook.LoadCSV(filePath, listDelimiter: ";");Dim workbook As WorkBook = WorkBook.LoadCSV(filePath, listDelimiter:= ";")Büyük CSV Dosyalarını Yönetme
Geniş CSV dosyalarıyla çalışırken, bellek kullanımı ve performansı göz önünde bulundurmak önemlidir. IronXL, büyük dosyaları belleğe bir kerede yüklemeden verimli bir şekilde yönetmenin yollarını sağlar. Dosyayı parçalara ayrılmış olarak okuyabilir veya bellek kullanımını etkili bir şekilde yönetmek için IronXL tarafından sağlanan akış API'lerini kullanabilirsiniz.
Sonuç
IronXL kullanarak C# dilinde bir DataTable'a CSV verilerini aktarmak basittir. Uygulamanızın veri işleme yeteneklerini geliştirir ve CSV dosyalarını verimli bir şekilde yönetmenizi sağlar. Bu öğreticide belirtilen adımlarla, yeni başlayanlar bu işlevi kolayca C# projelerine entegre edebilir.
IronXL, kullanıcıların özelliklerini keşfetmesi için ücretsiz bir deneme sunar. Daha gelişmiş yetenekler ve destek arayanlar için lisanslama seçenekleri mevcuttur.

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ılandırılmış, görsel olarak çekici kılavuzlar oluşturmayı seviyor.
İlgili Makaleler



