C#:
Робота з CSV

Як це зробити:

Робота з CSV файлами в C# може бути здійснена через простір імен System.IO для базових операцій, а для більш складних маніпуляцій або для обробки великих файлів без перешкод, можна використовувати сторонні бібліотеки, такі як CsvHelper. Нижче наведено приклади, як читати з файлів CSV та записувати в них, використовуючи обидва підходи.

Читання файлу CSV за допомогою System.IO

using System;
using System.IO;

class ReadCSV
{
    static void Main()
    {
        string filePath = @"шлях\до\вашого\файлу.csv";
        // Читання всіх рядків файлу CSV
        string[] csvLines = File.ReadAllLines(filePath);
        
        foreach (string line in csvLines)
        {
            string[] rowData = line.Split(',');
            Console.WriteLine($"Перша колонка: {rowData[0]}, Друга колонка: {rowData[1]}");
        }
    }
}

Приклад виводу:

Перша колонка: Ім'я, Друга колонка: Вік
Перша колонка: Джон Доу, Друга колонка: 30

Запис в файл CSV за допомогою System.IO

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

class WriteCSV
{
    static void Main()
    {
        string filePath = @"шлях\до\вашого\вихідного.csv";
        var lines = new List<string>
        {
            "Ім'я,Вік",
            "Джон Доу,30",
            "Джейн Сміт,25"
        };
        
        File.WriteAllLines(filePath, lines);
        Console.WriteLine("Файл CSV записано.");
    }
}

Приклад виводу:

Файл CSV записано.

Використання CsvHelper для читання CSV

Щоб використовувати CsvHelper, спочатку додайте пакет CsvHelper до вашого проекту за допомогою менеджера пакетів NuGet.

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

class ReadCSVWithCsvHelper
{
    static void Main()
    {
        string filePath = @"шлях\до\вашого\файлу.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($"Перша колонка: {record.Name}, Друга колонка: {record.Age}");
            }
        }
    }
}

Приклад виводу:

Перша колонка: Джон Доу, Друга колонка: 30
Перша колонка: Джейн Сміт, Друга колонка: 25

Використання CsvHelper для запису CSV

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

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

    static void Main()
    {
        string filePath = @"шлях\до\вашого\вихідного.csv";
        var records = new List<Person>
        {
            new Person { Name = "Джон Доу", Age = 30 },
            new Person { Name = "Джейн Сміт", Age = 25 }
        };

        using (var writer = new StreamWriter(filePath))
        using (var csv = new CsvWriter(writer, CultureInfo.InvariantCulture))
        {
            csv.WriteRecords(records);
        }
        
        Console.WriteLine("Файл CSV записано за допомогою CsvHelper.");
    }
}

Приклад виводу:

Файл CSV записано за допомогою CsvHelper.