C#:
Työskentely CSV:n kanssa

Kuinka:

CSV-tiedostojen käsittely C#:ssa voidaan suorittaa System.IO nimiavaruuden avulla perustoimintoja varten, ja monimutkaisempien manipulointien tai suurempien tiedostojen käsittelyyn sujuvasti voi harkita kolmannen osapuolen kirjastoja, kuten CsvHelper. Alla on esimerkkejä, kuinka lukea ja kirjoittaa CSV-tiedostoja käyttäen molempia lähestymistapoja.

CSV-tiedoston lukeminen käyttäen System.IO

using System;
using System.IO;

class ReadCSV
{
    static void Main()
    {
        string filePath = @"polku\tiedostoonne.csv";
        // Lukee kaikki CSV-tiedoston rivit
        string[] csvLines = File.ReadAllLines(filePath);
        
        foreach (string line in csvLines)
        {
            string[] rowData = line.Split(',');
            Console.WriteLine($"Ensimmäinen sarake: {rowData[0]}, Toinen sarake: {rowData[1]}");
        }
    }
}

Esimerkkitulostus:

Ensimmäinen sarake: Nimi, Toinen sarake: Ikä
Ensimmäinen sarake: John Doe, Toinen sarake: 30

Kirjoittaminen CSV-tiedostoon käyttäen System.IO

using System;
using System.Collections.Generic;
using System.IO;

class WriteCSV
{
    static void Main()
    {
        string filePath = @"polku\tulostiedostoonne.csv";
        var lines = new List<string>
        {
            "Nimi,Ikä",
            "John Doe,30",
            "Jane Smith,25"
        };
        
        File.WriteAllLines(filePath, lines);
        Console.WriteLine("CSV-tiedosto kirjoitettu.");
    }
}

Esimerkkitulostus:

CSV-tiedosto kirjoitettu.

CsvHelper:n käyttö CSV:n lukemiseen

CsvHelper:n käyttämiseksi, lisää ensin CsvHelper paketti projektiisi käyttäen NuGet Package Manageria.

using CsvHelper;
using System.Globalization;
using System.IO;
using System.Linq;
using CsvHelper.Configuration;

class ReadCSVWithCsvHelper
{
    static void Main()
    {
        string filePath = @"polku\tiedostoonne.csv";

        using (var reader = new StreamReader(filePath))
        using (var csv = new CsvReader(reader, CultureInfo.InvariantCulture))
        {
            var records = csv.GetRecords<dynamic>().ToList();
            foreach (var record in records)
            {
                Console.WriteLine($"Ensimmäinen sarake: {record.Name}, Toinen sarake: {record.Age}");
            }
        }
    }
}

Esimerkkitulostus:

Ensimmäinen sarake: John Doe, Toinen sarake: 30
Ensimmäinen sarake: Jane Smith, Toinen sarake: 25

CsvHelper:n käyttö CSV:n kirjoittamiseen

using CsvHelper;
using System.Globalization;
using System.IO;
using System.Collections.Generic;
using CsvHelper.Configuration;

class WriteCSVWithCsvHelper
{
    public class Henkilö
    {
        public string Nimi { get; set; }
        public int Ikä { get; set; }
    }

    static void Main()
    {
        string filePath = @"polku\tulostiedostoonne.csv";
        var records = new List<Henkilö>
        {
            new Henkilö { Nimi = "John Doe", Ikä = 30 },
            new Henkilö { Nimi = "Jane Smith", Ikä = 25 }
        };

        using (var writer = new StreamWriter(filePath))
        using (var csv = new CsvWriter(writer, CultureInfo.InvariantCulture))
        {
            csv.WriteRecords(records);
        }
        
        Console.WriteLine("CSV-tiedosto kirjoitettu CsvHelperin avulla.");
    }
}

Esimerkkitulostus:

CSV-tiedosto kirjoitettu CsvHelperin avulla.