USANDO O IRONXL

Como converter um arquivo CSV em uma lista em C#

Curtis Chau
Curtis Chau
Updated: 28 de junho de 2026

Neste tutorial para iniciantes, vamos ver como ler arquivos CSV em uma lista em C# usando a biblioteca IronXL. Bem, esta é uma das coisas mais básicas que você precisa saber em qualquer linguagem de programação, já que os arquivos CSV são uma maneira muito comum de armazenar dados e transferi-los de um sistema ou aplicativo para outro. Vamos abordar tudo, desde configurar seu projeto até analisar arquivos CSV de forma eficaz.

How to Convert CSV File into List in C#

  1. Crie um Projeto de Console C# no Visual Studio.
  2. Instale a Biblioteca CSV para C# usando o Gerenciador de Pacotes NuGet.
  3. Carregue o arquivo CSV usando o método WorkBook.LoadCSV.
  4. Leia os valores de dados do arquivo e preencha a lista.
  5. Imprima a lista no console.

Configurando Seu Projeto

Etapa 1: Criando um Novo Projeto C#

  1. Abra o Visual Studio: Inicie o Visual Studio no seu computador.
  2. Crie um Novo Projeto: Clique em "Criar um novo projeto". Isso abre uma janela onde você pode selecionar o tipo de projeto.
  3. Selecione o Tipo de Projeto: Escolha "Aplicativo de Console (.NET Core)" como seu tipo de projeto por simplicidade.
  4. Nomeie Seu Projeto: Nomeie seu projeto CSVFileReader.
  5. Escolha a Localização: Selecione uma localização adequada em seu dispositivo para salvar este projeto.
  6. Gere o Projeto: Clique em "Criar" para inicializar seu novo projeto C#.

Etapa 2: Instalando a Biblioteca IronXL

  1. Abra o Gerenciador de Pacotes NuGet: No Visual Studio, vá para o menu "Ferramentas", em seguida, selecione "Gerenciador de Pacotes NuGet" e escolha "Gerenciar Pacotes NuGet para Solução...".

  2. Procure por IronXL: Clique na aba "Procurar" e busque por "IronXL.Excel".

    Como Converter Arquivo CSV em Lista em C#: Figura 1 - IronXL

  3. Instale IronXL: Encontre o pacote IronXL nos resultados de pesquisa, selecione-o e clique em "Instalar." Certifique-se de concordar com os termos de licença e revise as alterações.

  4. Verifique a Instalação: Após a instalação, você deve ver o IronXL referenciado nos referenciais do seu projeto.

Agora, seu projeto CSVFileReader está configurado com a biblioteca IronXL, e você está pronto para começar a ler e processar arquivos CSV em C#. Esta configuração forma a base para as tarefas de leitura de CSV que iremos realizar nas seções subsequentes deste tutorial.

Parsing and Processing CSV Files in C#

Com o projeto configurado e a biblioteca IronXL instalada, vamos nos concentrar em analisar e processar arquivos CSV. Trabalharemos dentro do arquivo Program.cs, que é gerado automaticamente em seu projeto CSVFileReader.

Etapa 1: Especificando o Caminho do Arquivo

Antes de podermos ler qualquer dado, precisamos saber onde nosso arquivo CSV está localizado. Defina uma variável no método Main para armazenar o caminho do arquivo.

string filename = "csvfile.csv"; // Replace with your actual file path

Etapa 2: Carregar o Arquivo CSV

IronXL torna simples o carregamento de um arquivo CSV. Use o método WorkBook.LoadCSV para ler o arquivo CSV em um objeto WorkBook.

var csv = WorkBook.LoadCSV(filename);

Etapa 3: Definindo uma Estrutura de Dados

Crie uma classe que represente a estrutura de dados no seu arquivo CSV. Por exemplo, se seu CSV contiver informações sobre pessoas, defina uma classe Person assim:

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

Etapa 4: Analisando os Dados do CSV

Nesta etapa, iremos analisar o arquivo CSV e preencher um List<Person> com os dados. Estamos usando o IronXL para lidar com a leitura do CSV, e a chave é processar corretamente cada linha ou linha do CSV, levando em conta os cabeçalhos e quaisquer linhas vazias em potencial. Aqui está uma descrição detalhada do código:

List<Person> people = new List<Person>();
bool isFirstRow = true; // Add a flag to check for the first row
foreach (var row in csv.WorkSheets[0].Rows)
{
    if (isFirstRow)
    {
        isFirstRow = false; // Set the flag to false after skipping the first row
        continue;
    }
    if (row.IsEmpty) continue; // Skip empty rows
    var cells = row.ToArray();
    var person = new Person()
    {
        Name = cells[0].StringValue,
        Age = int.Parse(cells[1].StringValue) // Ensure this is a numeric value
    };
    people.Add(person);
}

Neste processo de análise, primeiro inicializamos um List<Person> para armazenar os dados analisados e usamos uma bandeira booleana isFirstRow para pular a linha de cabeçalho do arquivo CSV. O loop foreach itera por cada linha do arquivo CSV. Durante a primeira iteração, a linha de cabeçalho é identificada e pulada, garantindo que apenas as linhas de dados sejam processadas. Em seguida, verificamos cada linha para garantir que não esteja vazia usando row.IsEmpty. Esta etapa é crítica para evitar erros de análise com linhas vazias.

Para cada linha de dados, convertemos a linha em um array de células (row.ToArray()) e, em seguida, criamos um objeto Person com esses dados. É crucial analisar e converter corretamente os tipos de dados, como converter a string 'Idade' para um inteiro. O objeto Person analisado é então adicionado à nossa lista people. Esta abordagem garante que apenas linhas de dados válidas sejam processadas e armazenadas, lidando efetivamente com problemas potenciais como strings não numéricas em colunas numéricas ou linhas inesperadamente vazias.

Etapa 5: Exibindo os Dados

Após analisar os dados do CSV em nosso List<Person>, a próxima etapa importante é exibir e verificar os dados. Isso não só ajuda a garantir que nossa análise foi bem-sucedida, mas também nos permite observar a saída e realizar uma verificação rápida de qualidade dos dados. Veja como você pode implementar isso:

foreach (var person in people)
{
    Console.WriteLine($"Name: {person.Name}, Age: {person.Age}");
}

Aqui está o código completo do Program.cs:

using IronXL;
using System;
using System.Collections.Generic;

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

class Program
{
    static void Main(string[] args)
{
    string filename = @"C:\Users\tayya\Downloads\sample_data.csv"; // Replace with your actual file path
    var csv = WorkBook.LoadCSV(filename);
    List<Person> people = new List<Person>();
    bool isFirstRow = true; // Add a flag to check for the first row
    foreach (var row in csv.WorkSheets[0].Rows)
    {
        if (isFirstRow)
        {
            isFirstRow = false; // Set the flag to false after skipping the first row
            continue;
        }
        if (row.IsEmpty) continue; // Skip empty rows
        var cells = row.ToArray();
        var person = new Person()
        {
            Name = cells[0].StringValue,
            Age = int.Parse(cells[1].StringValue) // Ensure this is a numeric value
        };
        people.Add(person);
    }
    foreach (var person in people)
    {
        Console.WriteLine($"Name: {person.Name}, Age: {person.Age}");
    }
}

Saída do Código

Quando você executar o arquivo, ele exibirá os dados da lista no console:

Como Converter Arquivo CSV em Lista em C#: Figura 2 - Saída da Lista

Manipulando Diferentes Tipos de Dados

Ao manipular vários tipos de dados em um arquivo CSV, é importante adaptar a lógica de análise ao tipo específico de cada coluna de dados. No exemplo de classe Person, enquanto o Name é uma string e pode ser atribuído diretamente usando StringValue, campos numéricos como Age requerem conversão de string para inteiro usando Int32.Parse ou Convert.ToInt32. Isso é essencial para evitar erros de incompatibilidade de tipo.

Para tipos de dados mais complexos, como datas, use DateTime.Parse para converter representações de string de datas em objetos DateTime. É importante estar ciente do formato de data usado em seu arquivo CSV e garantir que ele corresponde ao formato esperado em seu código. Formatos de data inconsistentes podem levar a erros de análise ou interpretação incorreta dos dados.

Conclusão

Você acabou de aprender como ler, analisar e exibir os dados de um arquivo CSV usando IronXL em C#. Essa abordagem pode ser empregada em diferentes tipos de estruturas de dados e formatos de arquivo. Assim, isso representa uma habilidade geral útil para qualquer desenvolvedor por aí que escolha C# como sua principal linguagem.

IronXL oferece uma avaliação gratuita para os usuários experimentarem seus recursos. Uma vez que o período de teste termine, o licenciamento para IronXL começa a partir de um preço inicial de $999.

Lembre-se de que exceções e casos de borda devem ser tratados para escrever um código mais robusto, especialmente ao gerenciar diferentes tipos de dados e usar arquivos grandes. Continue experimentando e explorando mais recursos do IronXL para melhorar o processamento de seus dados em C#. Boa programação!

Curtis Chau é bacharel em Ciência da Computação (Universidade Carleton) e se especializa em desenvolvimento front-end, com experiência em Node.js, TypeScript, JavaScript e React. Apaixonado por criar interfaces de usuário intuitivas e esteticamente agradáveis, Curtis gosta de trabalhar com frameworks modernos e criar manuais bem estruturados e visualmente atraentes.

Leia mais

Artigos relacionados