Altbilgi içeriğine atla
IRONXL KULLANARAK
Bir CSV Dosyasını C#'da Listeye Dönüştürme Yöntemi | IronXL

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

Bu yeni başlayanlar eğitimiyle, CSV dosyalarını okumayı bir C#'ta listeye IronXL kütüphanesini kullanarak bakalım. CSV dosyaları çok yaygın bir veri depolama ve bir sistemden diğerine veya uygulamaya veri aktarma yöntemi olduğu için, bu herhangi bir programlama dilinde bilmeniz gereken en temel şeylerden biridir. Projeyi kurmadan tutun, CSV dosyalarını etkili bir şekilde ayrıştırmaya kadar her şeyi ele alacağız.

How to Convert CSV File into List in C

  1. Visual Studio'da bir C# Konsol Projesi oluşturun.
  2. NuGet Paket Yöneticisi kullanarak C# CSV Kütüphanesini kurun.
  3. WorkBook.LoadCSV yöntemi kullanarak CSV dosyasını yükleyin.
  4. Dosyadan veri değerlerini okuyun ve listeyi doldurun.
  5. Listeyi konsoldan yazdırın.

Projenizi Kurma

Adım 1: Yeni Bir C# Projesi Oluşturma

  1. Visual Studio'yu Açın: Bilgisayarınızda Visual Studio'yu başlatın.
  2. Yeni Bir Proje Oluşturun: "Yeni bir proje oluşturma" tıklayın. Bu, proje türünü seçebileceğiniz bir pencere açar.
  3. Proje Türünü Seçin: Basitlik için projeniz olarak 'Console App (.NET Core)' seçeneğini 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 Oluşturun: Yeni C# projenizi başlatmak için 'Olustur' butonuna tıklayın.

Adım 2: IronXL Kütüphanesini Yükleme

  1. NuGet Paketi Yöneticisini Açın: Visual Studio'da 'Araçlar' menüsüne gidin, 'NuGet Paket Yöneticisi'ni seçin ve 'Çözüm için NuGet Paketlerini Yönet...' seçeneğini tıklayın.
  2. IronXL İçin Arama Yapın: 'Gözat' sekmesine tıklayın ve 'IronXL.Excel' araması yapın.

    C#: 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 'Yükleyin' tıklayın. Herhangi bir lisans anlaşmasına katıldığınızdan emin olun ve değişiklikleri gözden geçirin.
  4. Yüklemeyi Kontrol Edin: Yüklemeden sonra, IronXL'in proje referanslarınızda göründüğünü görmelisiniz.

Artık, CSVFileReader projeniz IronXL kütüphanesi ile kuruldu ve C#'ta CSV dosyalarını okumaya ve işlemeye hazırsınız. Bu düzenleme, bu eğitimin sonraki bölümlerinde ele alacağımız CSV okuma görevleri için temel oluşturmaktadır.

Parsing and Processing CSV Files in C

Projeyi kurup IronXL kütüphanesini yükledikten sonra, CSV dosyalarını ayrıştırmaya ve işlemeye odaklanalım. Otomatik olarak CSVFileReader projenizde oluşturulan Program.cs dosyası içinde çalışacağız.

Adım 1: Dosya Yolunu Belirleme

Herhangi bir veriyi okumadan ö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

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

IronXL, CSV dosyasını yüklemeyi kolaylaştırır. CSV dosyasını 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

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

CSV dosyanızdaki veri yapısını temsil eden bir sınıf oluşturun. Örneğin, CSV'niz insanlarla ilgili bilgi 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

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

Bu adımda, CSV dosyasını ayrıştırıp verilerle bir List<Person> dolduracağız. IronXL'i CSV okuma işlemi için kullanıyoruz ve anahtar, CSV'nin her satır veya satırını doğru şekilde işlemektir, başlıklar ve olası boş satırlara dikkat ederek. İşte kodun detaylı 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 depolamak için bir List<Person> başlatırız ve CSV dosyasının başlık satırını atlamak için bir bool işaretçesi isFirstRow kullanırız. foreach döngüsü, CSV dosyasının her satırında iterasyon yapar. İlk iterasyon sırasında, başlık satırı tanımlanır ve atlanır, böylece yalnızca veri satırları işlenir. Ardından, her satırı boş olmadığından emin olmak için row.IsEmpty kullanarak kontrol ederiz. Bu adım, boş satırlardan kaynaklanan ayrıştırma hatalarını önlemek için kritiktir.

Her veri satırı için, satırı bir hücre dizisine (row.ToArray()) dönüştürür ve ardından bu verilerle bir Person nesnesi oluştururuz. Veri türlerinin doğru bir şekilde analiz edilmesi ve dönüştürülmesi kritik öneme sahiptir, örneğin 'Yaş' dizesini tam sayıya dönüştürmek gibi. Ayrıştırılmış Person nesnesi daha sonra people listemize eklenir. Bu yaklaşım, yalnızca geçerli veri satırlarının işlenmesini ve depolanmasını sağlar, bu nedenle sayısal sütunlardaki sayısal olmayan dizeler veya beklenmedik boş satırlar gibi potansiyel sorunları etkili bir şekilde ele alır.

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

CSV verilerini List<Person> içine ayrıştırdıktan sonra bir sonraki önemli adım, verileri görüntülemek ve doğrulamaktır. Bu sadece ayrıştırmamızın başarılı olduğunu garantilemekle kalmaz, aynı zamanda çıktıyı gözlemleme ve hızlı bir veri kalitesi kontrolü yapma fırsatı sağlar. Bu şekilde uygulayabilirsiniz:

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 Program.cs dosyasının tamamı:

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 konsolda görüntüleyecektir:

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

Farklı Veri Türlerini Yönetme

Bir CSV dosyasındaki çeşitli veri türlerini yönetirken, ayrıştırma mantığının her veri sütununun özel türüne göre uyarlanması önemlidir. Bu sınıf örneğinde Person ve Name bir string olup StringValue kullanılarak doğrudan atanabilir, Age gibi sayısal alanlar ise Int32.Parse veya Convert.ToInt32 kullanılarak string'den tamsayıya dönüştürme gerektirir. Bu, tür uyuşmazlık hatalarını önlemek için esastır.

Tarih gibi daha karmaşık veri türleri için, tarihlerin string temsilini DateTime.Parse kullanarak DateTime nesnelerine dönüştürün. CSV dosyanızda kullanılan tarih formatının farkında olmak ve kodunuzda beklenen formatla eşleştiğini sağlamak önemlidir. Tutarsız tarih formatları, ayrıştırma hatalarına veya yanlış veri yorumlamalarına yol açabilir.

Sonuç

IronXL kullanarak 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 kullanılabilir. Bu nedenle, C#'ı tercih ettiğiniz ana dil olarak seçmiş her geliştirici için genel olarak yararlı bir beceriyi temsil eder.

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

Özellikle farklı veri türlerini yönetirken ve büyük dosyaları kullanırken daha sağlam kodlar yazmak için istisnalar ve kenar durumlar ile başa çıkmanız gerektiğini unutmayın. C#'ta veri işlemenizi geliştirmek için IronXL'in daha fazla özelliğini denemeye ve keşfetmeye devam edin. İyi kodlamalar!

Sıkça Sorulan Sorular

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

IronXL kütüphanesini kullanarak C# dilinde CSV dosyalarını bir listeye okuyabilirsiniz. İlk olarak, Visual Studio'da bir C# Konsol Projesi oluşturun ve IronXL'i NuGet Paket Yöneticisi ile yükleyin. Daha sonra, CSV dosyasını WorkBook.LoadCSV methodunu kullanarak yükleyin ve verileri bir listeye ayrıştırın.

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

C# dilinde bir CSV dosyasını yüklemek için, IronXL kütüphanesindeki WorkBook.LoadCSV methodunu kullanın, bu method dosya yolunu parametre olarak alır.

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

'Person' (Kişi) gibi bir sınıf tanımlayarak CSV dosyanızdaki kolonlara uygun özellikler ekleyin. Bu, CSV'den toplanan verilerin nesneye yönelik bir formatta yapılandırılmasına yardımcı olur.

CSV dosyasında başlık satırını atlamak için hangi teknikleri kullanabilirim?

Başlık satırını atlamak için, satırın ilk satır olup olmadığını kontrol eden bir boolean bayrağı uygulayın ve işlenmesi aşamasında işlemi atlamak için bir sonraki döngüye geçin.

C# dilinde bir CSV dosyası ayrıştırdığınızda boş satırları nasıl ele alabilirim?

IronXL kütüphanesinin IsEmpty gibi satır özelliklerini kullanarak boş satırları kontrol edin ve ayrıştırma işlemi sırasında atlayın.

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

Farklı veri türlerini doğru bir şekilde ele almak, verilerin doğru bir şekilde işlenmesini sağlar ve özellikle sayısal veya tarih alanlarıyla uğraşırken tür uyuşmazlığı hatalarını önler.

CSV dosyalarının işlenmesiyle ilgili bazı yaygın zorluklar nelerdir?

Yaygın zorluklar arasında çeşitli veri türlerini ele almak, boş veya hatalı satırları atlamak ve veri hatasız bir şekilde ayrıştırma ve işleme yer alır.

C# dilinde CSV dosya işlemesi için bir kütüphane kullanmanın faydaları nelerdir?

C# dilinde IronXL kütüphanesini kullanmak, yükleme ve CSV dosyalarının ayrıştırmasını sezgisel yöntemleriyle basitleştirir, geliştiricilerin veriyi etkili bir şekilde işlemesine olanak tanır.

C# dilinde CSV dosya okuması için bir projeyi ayarlamak adına hangi adımları izlemeliyim?

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

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