Analizza file CSV in C#

  1. Analizza il file CSV con la classe TextFieldParser in C
  2. Analizza il file CSV con la libreria FileHelpers in C

Questo tutorial discuterà i metodi per analizzare un file CSV in C#.

Analizza il file CSV con la classe TextFieldParser in C

Per utilizzare la classe TextFieldParser, dobbiamo fare riferimento a Microsoft.VisualBasic.dll nel nostro codice C#. La classe TextFieldParser contiene molti metodi per analizzare i file di testo strutturato in C#. Possiamo leggere un file CSV con la classe TextFieldParser impostando i delimitatori su , con la funzione SetDelimiters() all’interno della classe TextFieldParser. Il seguente esempio di codice ci mostra come analizzare un file CSV con la classe TextFieldParser in C#.

using System;
using Microsoft.VisualBasic.FileIO;

namespace parse_csv
{
    class Program
    {
        static void Main(string[] args)
        {
            using (TextFieldParser textFieldParser = new TextFieldParser(@"C:\File\Sheet1.csv"))
            {
                textFieldParser.TextFieldType = FieldType.Delimited;
                textFieldParser.SetDelimiters(",");
                while (!textFieldParser.EndOfData)
                {
                    string[] rows = textFieldParser.ReadFields();
                    
                }
            }
        }
    }
}

Nel codice precedente, abbiamo inizializzato l’istanza textFieldParser della classe TextFieldParser specificando il percorso del nostro file CSV nel costruttore. Quindi impostiamo il nostro tipo di campo di testo da delimitare con la funzione textFieldParser.TextFieldType = FieldType.Delimited e impostiamo , come delimitatore con la funzione textFieldParser.SetDelimiter(','). Abbiamo quindi utilizzato un ciclo while per leggere il file CSV fino alla fine con textFieldParser.EndofData. Abbiamo memorizzato i dati all’interno di un array di stringhe con la funzione ReadFields().

Analizza il file CSV con la libreria FileHelpers in C

La libreria FileHelpers viene utilizzata per leggere e scrivere dati su file, flussi e stringhe in C#. È una libreria di terze parti e non è preinstallata con il framework .NET. Possiamo installarlo facilmente cercandolo nel gestore pacchetti NuGet nell’IDE di Visual Studio. Possiamo usare la classe FileHelpersEngine per analizzare i dati da un file CSV in C#. La classe FileHelperEngine ottiene i dati dal file in oggetti di classe in C#. Quindi, dobbiamo prima creare una classe modello che possa contenere i nostri dati dal file. La classe conterrebbe campi che rappresentano le colonne nel file CSV. Possiamo usare [DelimitedRecord(",")] per specificare che , è usato come delimitatore qui. Possiamo usare la funzione ReadFile(path) per leggere i dati all’interno di un array di oggetti di classe dal file nel percorso specificato. Il seguente esempio di codice ci mostra come analizzare un file CSV con la libreria FileHelpers in C#.

using FileHelpers;
using System;
namespace parse_csv
{
    [DelimitedRecord(",")]
    public class Record
    {
        public string Name;

        public string Age;
    }
    class Program
    {
        static void Main(string[] args)
        {
            var fileHelperEngine = new FileHelperEngine<Record>();
            var records = fileHelperEngine.ReadFile(@"C:\File\records.csv");

            foreach (var record in records)
            {
                Console.WriteLine(record.Name);
                Console.WriteLine(record.Age);
            }
        }
    }
}

Produzione:

Name
Age
MMA
22
SDA
19
SHA
11

Nel codice sopra, leggiamo i dati all’interno del file C:\File\records.csv e li salviamo in un array di oggetti della classe Record con la libreria FileHelpers in C#.