C#:
Arbeide med CSV

Hvordan:

Arbeid med CSV-filer i C# kan gjøres gjennom System.IO navneområdet for grunnleggende operasjoner, og for mer komplekse manipulasjoner eller for å håndtere større filer sømløst, kan man vurdere tredjepartsbiblioteker som CsvHelper. Nedenfor er eksempler på hvordan man leser fra og skriver til CSV-filer ved hjelp av begge tilnærminger.

Lese en CSV-fil ved hjelp av System.IO

using System;
using System.IO;

class ReadCSV
{
    static void Main()
    {
        string filePath = @"sti\til\din\fil.csv";
        // Lese alle linjene i CSV-filen
        string[] csvLines = File.ReadAllLines(filePath);
        
        foreach (string line in csvLines)
        {
            string[] rowData = line.Split(',');
            Console.WriteLine($"Første kolonne: {rowData[0]}, Andre kolonne: {rowData[1]}");
        }
    }
}

Eksempel på utdata:

Første kolonne: Navn, Andre kolonne: Alder
Første kolonne: John Doe, Andre kolonne: 30

Skrive til en CSV-fil ved hjelp av System.IO

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

class WriteCSV
{
    static void Main()
    {
        string filePath = @"sti\til\din\output.csv";
        var lines = new List<string>
        {
            "Navn,Alder",
            "John Doe,30",
            "Jane Smith,25"
        };
        
        File.WriteAllLines(filePath, lines);
        Console.WriteLine("CSV-filen er skrevet.");
    }
}

Eksempel på utdata:

CSV-filen er skrevet.

Bruke CsvHelper til å lese CSV

For å bruke CsvHelper, legg først til CsvHelper-pakken til prosjektet ditt ved bruk av NuGet Package Manager.

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

class ReadCSVWithCsvHelper
{
    static void Main()
    {
        string filePath = @"sti\til\din\fil.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($"Første kolonne: {record.Name}, Andre kolonne: {record.Age}");
            }
        }
    }
}

Eksempel på utdata:

Første kolonne: John Doe, Andre kolonne: 30
Første kolonne: Jane Smith, Andre kolonne: 25

Bruke CsvHelper til å skrive CSV

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

class WriteCSVWithCsvHelper
{
    public class Person
    {
        public string Navn { get; set; }
        public int Alder { get; set; }
    }

    static void Main()
    {
        string filePath = @"sti\til\din\output.csv";
        var records = new List<Person>
        {
            new Person { Navn = "John Doe", Alder = 30 },
            new Person { Navn = "Jane Smith", Alder = 25 }
        };

        using (var writer = new StreamWriter(filePath))
        using (var csv = new CsvWriter(writer, CultureInfo.InvariantCulture))
        {
            csv.WriteRecords(records);
        }
        
        Console.WriteLine("CSV-filen er skrevet med CsvHelper.");
    }
}

Eksempel på utdata:

CSV-filen er skrevet med CsvHelper.