C#:
Lavorare con i CSV
Come fare:
Lavorare con i file CSV in C# può essere realizzato attraverso lo spazio dei nomi System.IO
per operazioni di base, e per manipolazioni più complesse o per gestire file di grandi dimensioni senza interruzioni, si potrebbe considerare l’utilizzo di librerie di terze parti come CsvHelper
. Di seguito sono riportati esempi di come leggere e scrivere file CSV utilizzando entrambi gli approcci.
Leggere un file CSV usando System.IO
using System;
using System.IO;
class LeggiCSV
{
static void Main()
{
string percorsoFile = @"percorso\al\tuo\file.csv";
// Lettura di tutte le righe del file CSV
string[] righeCsv = File.ReadAllLines(percorsoFile);
foreach (string riga in righeCsv)
{
string[] datiRiga = riga.Split(',');
Console.WriteLine($"Prima Colonna: {datiRiga[0]}, Seconda Colonna: {datiRiga[1]}");
}
}
}
Output dell’esempio:
Prima Colonna: Nome, Seconda Colonna: Età
Prima Colonna: John Doe, Seconda Colonna: 30
Scrivere un file CSV usando System.IO
using System;
using System.Collections.Generic;
using System.IO;
class ScriviCSV
{
static void Main()
{
string percorsoFile = @"percorso\al\tuo\output.csv";
var righe = new List<string>
{
"Nome,Età",
"John Doe,30",
"Jane Smith,25"
};
File.WriteAllLines(percorsoFile, righe);
Console.WriteLine("File CSV scritto.");
}
}
Output dell’esempio:
File CSV scritto.
Utilizzare CsvHelper per Leggere CSV
Per utilizzare CsvHelper, prima, aggiungi il pacchetto CsvHelper
al tuo progetto usando NuGet Package Manager.
using CsvHelper;
using System.Globalization;
using System.IO;
using System.Linq;
using CsvHelper.Configuration;
class LeggiCSVConCsvHelper
{
static void Main()
{
string percorsoFile = @"percorso\al\tuo\file.csv";
using (var lettore = new StreamReader(percorsoFile))
using (var csv = new CsvReader(lettore, CultureInfo.InvariantCulture))
{
var record = csv.GetRecords<dynamic>().ToList();
foreach (var record in record)
{
Console.WriteLine($"Prima Colonna: {record.Name}, Seconda Colonna: {record.Age}");
}
}
}
}
Output dell’esempio:
Prima Colonna: John Doe, Seconda Colonna: 30
Prima Colonna: Jane Smith, Seconda Colonna: 25
Utilizzare CsvHelper per Scrivere CSV
using CsvHelper;
using System.Globalization;
using System.IO;
using System.Collections.Generic;
using CsvHelper.Configuration;
class ScriviCSVConCsvHelper
{
public class Persona
{
public string Nome { get; set; }
public int Età { get; set; }
}
static void Main()
{
string percorsoFile = @"percorso\al\tuo\output.csv";
var record = new List<Persona>
{
new Persona { Nome = "John Doe", Età = 30 },
new Persona { Nome = "Jane Smith", Età = 25 }
};
using (var scrittore = new StreamWriter(percorsoFile))
using (var csv = new CsvWriter(scrittore, CultureInfo.InvariantCulture))
{
csv.WriteRecords(record);
}
Console.WriteLine("File CSV scritto con CsvHelper.");
}
}
Output dell’esempio:
File CSV scritto con CsvHelper.