Altbilgi içeriğine atla
IRONXL KULLANARAK

C#'da CSV Dosyasını Listeye Nasıl Dönüştürürsünüz

Başlangic yapanlar icin bu kılavuzda, CSV dosyalarinin nasıl okunacagini bir C# listesinin icerisine IronXL kutuphanesini kullanarak göreceğiz. Evet, CSV dosyaları veri depolamanin ve bir sistem veya uygulamadan digerine tasinmasinin çok yaygin bir yöntem oldugu icin, herhangi bir programlama dilinde bilmeniz gereken en temel seylerden biridir. Projenizi kurmaktan CSV dosyalarini etkili bir sekilde ayrismasina kadar her seyi ele alacagiz.

How to Convert CSV File into List in C

  1. Visual Studio'da bir C# Konsol Projesi Oluşturun.
  2. NuGet Paket Yonetici'sini kullanarak C# CSV Kutuphanesini yukleyin.
  3. WorkBook.LoadCSV yöntemini kullanarak CSV dosyasını yükleyin.
  4. Dosyadan veri degerlerini okuyun ve listeyi doldurun.
  5. Konsolda listeyi yazdirin.

Projenizi Ayarliyor

Adim 1: Yeni Bir C# Projesi Oluşturuyor

  1. Visual Studio'yu Acin: Bilgisayarinizda Visual Studio'yu başlatin.
  2. Yeni Proje Oluşturun: "Yeni bir proje oluştur" secesine tiklayin. Bu, proje turunu secebileceginiz bir pencere acar.
  3. Proje Türünü Seçin: Basitlik için projektipiniz olarak Console App (.NET Core)'u seçin.
  4. Projenizi Adlandırın: Projenizi CSVFileReader olarak adlandırın.
  5. Konumu Seçin: Bu projeyi kaydetmek için cihazınızda uygun bir konum seçin.
  6. Projeyi Üretin: Yeni C# projenizi başlatmak için "Create"e tıklayın.

Adım 2: IronXL Kutuphanesini Yükleme

  1. NuGet Paket Yöneticisini Açın: Visual Studio'da "Tools" menüsüne gidin, sonra "NuGet Paket Yöneticisi"ni seçin ve "Manage NuGet Packages for Solution..." seçeneğini seçin.
  2. IronXL'i Araştırın: "Browse" sekmesine tıklayın ve "IronXl.Excel"i arayın.

    C# dilinde CSV Dosyasını Listeye Dönüştürme: Şekil 1 - IronXL

  3. IronXL'i Yükleyin: Arama sonuçlarında IronXL paketini bulun, seçin ve "Install"e tıklayın. Herhangi bir lisans anlaşmasını kabul ettiğinizden ve değişiklikleri incelediğinizden emin olun.
  4. Yüklemeyi Kontrol Edin: Yüklemeden sonra, projelerinizin başvurular kısmında IronXL'i görmelisiniz.

CSVFileReader projeniz artık IronXL kutuphanesi ile kuruldu ve C#'ta CSV dosyalarını okumaya ve işlemeye hazırsınız. Bu kurulum, bu eğitimin müteakip bölümlerinde ele alacağımız CSV okuma görevlerinin temelini oluşturur.

Parsing and Processing CSV Files in C

Proje kuruldu ve IronXL kutuphanesi yüklendi, şimdi CSV dosyalarını ayrıştırma ve işleme konusuna odaklanalım. Program.cs dosyası üzerinde çalışacağız, bu dosya CSVFileReader projenizde otomatik olarak oluşturulur.

1. Adım: Dosya Yolunu Belirtme

Herhangi bir veriyi okuyabilmeden önce, CSV dosyamızın nerede olduğunu bilmemiz gerekiyor. Dosya yolunu depolamak için Main yönteminde bir değişken tanımlayın.

string filename = "csvfile.csv"; // Replace with your actual file path
string filename = "csvfile.csv"; // Replace with your actual file path
Dim filename As String = "csvfile.csv" ' Replace with your actual file path
$vbLabelText   $csharpLabel

2. Adım: CSV Dosyasını Yükleme

IronXL, bir CSV dosyasını yüklemeyi kolaylaştırır. CSV dosyasını bir WorkBook nesnesine okumak için WorkBook.LoadCSV yöntemini kullanın.

var csv = WorkBook.LoadCSV(filename);
var csv = WorkBook.LoadCSV(filename);
Dim csv = WorkBook.LoadCSV(filename)
$vbLabelText   $csharpLabel

3. Adım: Bir Veri Yapısı Tanımlama

CSV dosyanızdaki veri yapısını temsil eden bir sınıf oluşturun. Örneğin, CSV'niz kişilere ait bilgileri içeriyorsa, şu şekilde bir Person sınıfı tanımlayın:

public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}
public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}
Public Class Person
	Public Property Name() As String
	Public Property Age() As Integer
End Class
$vbLabelText   $csharpLabel

4. Adım: CSV Verilerini Ayrıştırma

Bu adımda, CSV dosyasını ayrıştırıp verilerle bir List<Person> dolduracağız. IronXL kullanarak CSV okumasını yapıyoruz ve her bir CSV satırını veya satırını düzgün bir şekilde işlemek, başlıklar ve olası boş satırları hesaba katmak anahtardır. İşte kodun ayrıntılı bir dökümü:

List<Person> people = new List<Person>();
bool isFirstRow = true; // Add a flag to check for the first row
foreach (var row in csv.WorkSheets[0].Rows)
{
    if (isFirstRow)
    {
        isFirstRow = false; // Set the flag to false after skipping the first row
        continue;
    }
    if (row.IsEmpty) continue; // Skip empty rows
    var cells = row.ToArray();
    var person = new Person()
    {
        Name = cells[0].StringValue,
        Age = int.Parse(cells[1].StringValue) // Ensure this is a numeric value
    };
    people.Add(person);
}
List<Person> people = new List<Person>();
bool isFirstRow = true; // Add a flag to check for the first row
foreach (var row in csv.WorkSheets[0].Rows)
{
    if (isFirstRow)
    {
        isFirstRow = false; // Set the flag to false after skipping the first row
        continue;
    }
    if (row.IsEmpty) continue; // Skip empty rows
    var cells = row.ToArray();
    var person = new Person()
    {
        Name = cells[0].StringValue,
        Age = int.Parse(cells[1].StringValue) // Ensure this is a numeric value
    };
    people.Add(person);
}
Dim people As New List(Of Person)()
Dim isFirstRow As Boolean = True ' Add a flag to check for the first row
For Each row In csv.WorkSheets(0).Rows
	If isFirstRow Then
		isFirstRow = False ' Set the flag to false after skipping the first row
		Continue For
	End If
	If row.IsEmpty Then
		Continue For ' Skip empty rows
	End If
	Dim cells = row.ToArray()
	Dim person As New Person() With {
		.Name = cells(0).StringValue,
		.Age = Integer.Parse(cells(1).StringValue)
	}
	people.Add(person)
Next row
$vbLabelText   $csharpLabel

Bu ayrıştırma sürecinde, önce ayrıştırılmış verileri saklamak için bir List<Person> başlatıyoruz ve CSV dosyasının başlık satırını atlamak için bir boolean bayrak isFirstRow kullanıyoruz. foreach döngüsü, CSV dosyasının her satırını tekrarlar. İlk yineleme sırasında başlık satırı belirlenir ve atlanır, böylece yalnızca veri satırları işlenir. Ardından, her satırın boş olmadığından emin olmak için row.IsEmpty kullanarak kontrol ediyoruz. Bu adım, boş satırlarla ilişkili ayrıştırma hatalarından kaçınmak için kritik öneme sahiptir.

Her veri satırı için, satırı hücrelerden oluşan bir diziye (row.ToArray()) dönüştürüyoruz ve bu verilerle bir Person nesnesi oluşturuyoruz. Veri türlerini doğru şekilde analiz etmek ve dönüştürmek çok önemlidir, örneğin, 'Yaş' stringini bir sayıya dönüştürmek. Ayrıştırılmış Person nesnesi daha sonra people listemize eklenir. Bu yaklaşım, yalnızca geçerli veri satırlarının işlenip saklanmasını sağlar, böylece sayısal olmayan dizeler gibi olası sorunların etkin bir şekilde ele alınmasını sağlar.

5. Adım: Verileri Görüntüleme

CSV verilerini List<Person> üzerinde ayrıştırdıktan sonra, bir sonraki önemli adım verileri görüntülemek ve doğrulamaktır. Bu, yalnızca ayrıştırmanın başarılı olduğunu garanti etmekle kalmaz, aynı zamanda çıktıyı gözlemlemenize ve hızlı bir veri kalite kontrolü gerçekleştirmenize olanak tanır. Bunu nasıl uygulayabileceğiniz şöyledir:

foreach (var person in people)
{
    Console.WriteLine($"Name: {person.Name}, Age: {person.Age}");
}
foreach (var person in people)
{
    Console.WriteLine($"Name: {person.Name}, Age: {person.Age}");
}
For Each person In people
	Console.WriteLine($"Name: {person.Name}, Age: {person.Age}")
Next person
$vbLabelText   $csharpLabel

İşte tam Program.cs kodu:

using IronXL;
using System;
using System.Collections.Generic;

public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}

class Program
{
    static void Main(string[] args)
{
    string filename = @"C:\Users\tayya\Downloads\sample_data.csv"; // Replace with your actual file path
    var csv = WorkBook.LoadCSV(filename);
    List<Person> people = new List<Person>();
    bool isFirstRow = true; // Add a flag to check for the first row
    foreach (var row in csv.WorkSheets[0].Rows)
    {
        if (isFirstRow)
        {
            isFirstRow = false; // Set the flag to false after skipping the first row
            continue;
        }
        if (row.IsEmpty) continue; // Skip empty rows
        var cells = row.ToArray();
        var person = new Person()
        {
            Name = cells[0].StringValue,
            Age = int.Parse(cells[1].StringValue) // Ensure this is a numeric value
        };
        people.Add(person);
    }
    foreach (var person in people)
    {
        Console.WriteLine($"Name: {person.Name}, Age: {person.Age}");
    }
}
using IronXL;
using System;
using System.Collections.Generic;

public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}

class Program
{
    static void Main(string[] args)
{
    string filename = @"C:\Users\tayya\Downloads\sample_data.csv"; // Replace with your actual file path
    var csv = WorkBook.LoadCSV(filename);
    List<Person> people = new List<Person>();
    bool isFirstRow = true; // Add a flag to check for the first row
    foreach (var row in csv.WorkSheets[0].Rows)
    {
        if (isFirstRow)
        {
            isFirstRow = false; // Set the flag to false after skipping the first row
            continue;
        }
        if (row.IsEmpty) continue; // Skip empty rows
        var cells = row.ToArray();
        var person = new Person()
        {
            Name = cells[0].StringValue,
            Age = int.Parse(cells[1].StringValue) // Ensure this is a numeric value
        };
        people.Add(person);
    }
    foreach (var person in people)
    {
        Console.WriteLine($"Name: {person.Name}, Age: {person.Age}");
    }
}
Imports IronXL
Imports System
Imports System.Collections.Generic

Public Class Person
	Public Property Name() As String
	Public Property Age() As Integer
End Class

Friend Class Program
	Shared Sub Main(ByVal args() As String)
	Dim filename As String = "C:\Users\tayya\Downloads\sample_data.csv" ' Replace with your actual file path
	Dim csv = WorkBook.LoadCSV(filename)
	Dim people As New List(Of Person)()
	Dim isFirstRow As Boolean = True ' Add a flag to check for the first row
	For Each row In csv.WorkSheets(0).Rows
		If isFirstRow Then
			isFirstRow = False ' Set the flag to false after skipping the first row
			Continue For
		End If
		If row.IsEmpty Then
			Continue For ' Skip empty rows
		End If
		Dim cells = row.ToArray()
		Dim person As New Person() With {
			.Name = cells(0).StringValue,
			.Age = Integer.Parse(cells(1).StringValue)
		}
		people.Add(person)
	Next row
	For Each person In people
		Console.WriteLine($"Name: {person.Name}, Age: {person.Age}")
	Next person
	End Sub
$vbLabelText   $csharpLabel

Kodun Çıktısı

Dosyayı çalıştırdığınızda, listedeki verileri konsol üzerinde görüntüleyecektir:

C# dilinde CSV Dosyasını Listeye Dönüştürme: Şekil 2 - Liste Çıktısı

Farklı Veri Türlerini Yönetme

CSV dosyasındaki çeşitli veri türlerini yönetirken, her veri sütununun belirli türüne uygun ayrıştırma mantığını uyarlamak önemlidir. Person sınıfı örneğinde, Name bir string ve doğrudan StringValue kullanılarak atanabilirken, Age gibi sayısal alanlar, Int32.Parse veya Convert.ToInt32 kullanılarak string'den tamsayıya dönüştürme gerektirir. Bu, tür uyumsuzluğu hatalarından kaçınmak için gereklidir.

Tarih gibi daha karmaşık veri tipleri için, tarihlerin string gösterimlerini DateTime nesnelerine dönüştürmek üzere DateTime.Parse kullanın. CSV dosyanızda kullanılan tarih formatının farkında olmak ve kodunuzda beklenen formatla uyuşmasını sağlamak önemlidir. Tutarsız tarih formatları ayrıştırma hatalarına veya yanlış veri yorumlanmasına yol açabilir.

Sonuç

IronXL kullanarak C#'ta bir CSV dosyasının verilerini nasıl okuyacağınızı, ayrıştıracağınızı ve görüntüleyeceğinizi öğrendiniz. Bu yaklaşım, farklı veri yapıları ve dosya formatları üzerinde uygulanabilir. Bu nedenle, her yerdeki geliştiriciler için C#'ı ana dil olarak tercih edenler için genel olarak faydalı bir beceri temsil eder.

IronXL, kullanıcıların özelliklerini deneyimlemeleri için ücretsiz bir deneme sürümü sunar. Deneme süresi sona erdiğinde, IronXL lisanslaması $799 başlangıç fiyatıyla başlar.

Özellikle farklı veri türlerini yönetirken ve büyük dosyalarla çalışırken, daha sağlam kod yazmak için istisnalar ve uç durumlardan kaçınılması gerektiğini unutmayın. IronXL'in daha fazla özelliğini deneyimleyip, C#'ta verinizi işlemeyi geliştirmeye devam edin. İyi çalışmalar!

Sıkça Sorulan Sorular

C#'da CSV dosyalarını bir listeye nasıl okuyabilirim?

IronXL kütüphanesini kullanarak C#'da CSV dosyalarını bir listeye okuyabilirsiniz. İlk olarak, Visual Studio'da bir C# Konsol Projesi oluşturun ve IronXL'i NuGet Paket Yöneticisi üzerinden yükleyin. Ardından, CSV dosyasını yüklemek ve veriyi bir listeye ayrıştırmak için WorkBook.LoadCSV yöntemini kullanın.

C#'da bir CSV dosyasını yüklemek için hangi yöntemi kullanmalıyım?

C#'da bir CSV dosyasını yüklemek için, IronXL kütüphanesinin WorkBook.LoadCSV yöntemini kullanın, bu yöntem dosya yolunu parametre olarak alır.

CSV dosyasının içeriğine uygun bir veri yapısını nasıl tanımlarım?

CSV dosyanızdaki sütunlarla uyuşan özelliklere sahip bir sınıf, örneğin bir 'Kişi' sınıfı tanımlayın. Bu, CSV'den çekilen veriyi nesne yönelimli bir biçime yapılandırmanıza yardımcı olur.

Bir CSV dosyasındaki başlık satırını atlamak için hangi teknik kullanılabilir?

Başlık satırını atlamak için satırın ilk satır olup olmadığını kontrol eden bir boolean bayrak uygulayın ve bir sonraki yinelemeye devam ederek işlemi atlayın.

C#'da bir CSV dosyasını ayrıştırırken boş satırlarla nasıl başa çıkabilirim?

Ayrıştırma süreci sırasında, boş satırları kontrol etmek ve atlamak için IronXL kütüphanesinin IsEmpty gibi satır özelliklerini kullanın.

CSV dosyalarını işlerken farklı veri türlerinin işlenmesinin önemi nedir?

Farklı veri türlerini doğru bir şekilde işlemek, özellikle sayı veya tarih alanları ile ilgilenirken, veriyolu yanlış eşleşme hatalarından kaçınarak verinin doğru bir şekilde işlenmesini sağlar.

CSV dosyalarını işlemekle ilgili yaygın zorluklar nelerdir?

Yaygın zorluklar arasında çeşitli veri türlerinin işlenmesi, boş veya hatalı satırların atlanması ve hatasız verilerin doğru bir şekilde ayrıştırılması ve işlenmesi yer alır.

C#'da CSV dosyaları için bir kütüphane kullanmanın avantajları nelerdir?

IronXL kütüphanesini kullanmak, C#'da CSV dosyalarının yüklenmesini ve ayrıştırmasını kolaylaştırır, sezgisel yöntemlerle geliştiricilerin verileri etkili bir şekilde işlemesini sağlar.

C# projesini CSV dosya okuma için kurmak için hangi adımları izlemeliyim?

Visual Studio'da bir C# Konsol Projesi oluşturarak başlayın, IronXL kütüphanesini NuGet Paket Yöneticisi'ni kullanarak yükleyin ve CSV dosyalarını bir listeye yüklemek ve ayrıştırmak için WorkBook.LoadCSV yöntemini kullanın.

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