Analisar arquivo CSV em C#

Muhammad Maisam Abbas 16 fevereiro 2024
  1. Analisar arquivo CSV com a classe TextFieldParser em C#
  2. Analise o arquivo CSV com a biblioteca FileHelpers em C#
Analisar arquivo CSV em C#

Este tutorial discutirá os métodos para analisar um arquivo CSV em C#.

Analisar arquivo CSV com a classe TextFieldParser em C#

Para usar a classe TextFieldParser, temos que fazer referência a Microsoft.VisualBasic.dll em nosso código C#. A classe TextFieldParser contém muitos métodos para analisar arquivos de texto estruturados em C#. Podemos ler um arquivo CSV com a classe TextFieldParser definindo os delimitadores como , com a função SetDelimiters() dentro da classe TextFieldParser. O exemplo de código a seguir nos mostra como analisar um arquivo CSV com a classe TextFieldParser em 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();
        }
      }
    }
  }
}

No código acima, inicializamos a instância textFieldParser da classe TextFieldParser especificando o caminho para nosso arquivo CSV no construtor. Em seguida, definimos nosso tipo de campo de texto para ser delimitado com a função textFieldParser.TextFieldType = FieldType.Delimited e definimos , como o delimitador com a função textFieldParser.SetDelimiter(','). Em seguida, usamos um loop while para ler o arquivo CSV até o final com o textFieldParser.EndofData. Armazenamos os dados dentro de um array de strings com a função ReadFields().

Analise o arquivo CSV com a biblioteca FileHelpers em C#

A biblioteca FileHelpers é usada para ler e gravar dados em arquivos, fluxos e strings em C#. É uma biblioteca de terceiros e não vem pré-instalada com o framework .NET. Podemos instalá-lo facilmente pesquisando-o no gerenciador de pacotes NuGet no Visual Studio IDE. Podemos usar a classe FileHelpersEngine para analisar dados de um arquivo CSV em C#. A classe FileHelperEngine obtém os dados do arquivo em objetos de classe em C#. Portanto, primeiro temos que criar uma classe de modelo que possa conter nossos dados do arquivo. A classe conteria campos que representam colunas no arquivo CSV. Podemos usar [DelimitedRecord(",")] para especificar que , é usado como um delimitador aqui. Podemos usar a função ReadFile(path) para ler dados dentro de um array de objetos de classe do arquivo no caminho especificado. O exemplo de código a seguir nos mostra como analisar um arquivo CSV com a biblioteca FileHelpers em 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);
      }
    }
  }
}

Resultado:

Name Age MMA 22 SDA 19 SHA 11

No código acima, lemos os dados dentro do arquivo C:\File\records.csv e os salvamos em um array de objetos da classe Record com a biblioteca FileHelpers em C#.

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

Artigo relacionado - Csharp CSV