IRONSOFTWAREHOME
USANDO O IRONXL

Biblioteca CSV em C#: Tutorial completo usando IronXL

Curtis Chau
Curtis Chau
Updated: 28 de junho de 2026

Trabalhar com arquivos CSV em C# requer uma biblioteca que lida com mais do que apenas parsing de linhas simples. Você precisa de detecção confiável de codificação, manejo correto de delimitadores, tipagem forte, e, idealmente, a capacidade de mover dados entre CSV e Excel sem manter duas dependências separadas. IronXL oferece tudo isso em uma única biblioteca .NET -- sem necessidade de Microsoft Office, sem interop COM e sem soluções frágeis. Seja processando arquivos de dados planos em um servidor, construindo um pipeline de dados ou oferecendo um download de planilha para usuários, o IronXL oferece uma API consistente para cada formato.

Como configurar uma biblioteca de planilhas em C#?

Instalar o IronXL leva menos de um minuto através do NuGet. Abra o Console do Gerenciador de Pacotes no Visual Studio e execute o comando abaixo ou use o .NET CLI de qualquer terminal:

PM > Install-Package IronXL.Excel

Após a instalação do pacote, adicione o namespace a qualquer arquivo onde você deseje trabalhar com dados de planilhas:

using IronXL;

O IronXL tem como alvo .NET Framework 4.6.2+ e todas as versões modernas do .NET (Core, 5, 6, 7, 8, 9 e 10). Ele roda em Windows, Linux e macOS, tornando-o adequado tanto para ferramentas de desktop quanto para cargas de trabalho em servidores em contêineres. Consulte o guia de instalação do IronXL para obter instruções passo a passo sobre as fontes do pacote e a ativação da licença.

Como ler arquivos CSV em C#?

Ler um arquivo CSV com IronXL segue o mesmo padrão que carregar qualquer planilha. Chame WorkBook.Load com o caminho do arquivo e IronXL infere o formato a partir da extensão -- nenhuma configuração extra é necessária:

// Load a CSV file into a WorkBook
WorkBook workBook = WorkBook.Load("sales_data.csv");

// Access the default worksheet
WorkSheet workSheet = workBook.DefaultWorkSheet;

// Read individual cells by Excel-style address
string customerName = workSheet["A2"].StringValue;
decimal orderAmount = workSheet["B2"].DecimalValue;

// Iterate rows, starting at index 1 to skip the header
for (int i = 1; i < workSheet.Rows.Count(); i++)
{
    var row = workSheet.Rows[i];
    Console.WriteLine($"Customer: {row.Columns[0].Value}, Amount: {row.Columns[1].Value}");
}

O objeto WorkBook expõe o modelo completo da planilha. Acesse as células com notação familiar do Excel, como "A2", e propriedades de conversão embutidas -- StringValue, DecimalValue, IntValue, DateTimeValue -- lidam com coercibilidade de tipo para que você não precise analisar strings manualmente.

Quais Opções de Endereçamento de Célula estão Disponíveis?

Além do acesso a células individuais, o IronXL suporta notação de intervalos e iteração de linhas/colunas. Você pode endereçar um bloco retangular de células com uma expressão de faixa como workSheet["A2:C10"] e iterar através dela como uma coleção plana. Isso é útil quando você deseja validar ou transformar um bloco conhecido de dados sem escrever loops aninhados:

// Access a range and print each value
foreach (var cell in workSheet["A2:C10"])
{
    Console.WriteLine($"{cell.AddressString}: {cell.Value}");
}

Para contagens de linhas dinâmicas, a coleção workSheet.Rows reflete automaticamente os dados carregados, para que você não precise codificar manualmente as contagens de linhas. Revise o tutorial de leitura de CSV em C# para mais padrões, incluindo detecção de cabeçalho e arquivos multi-codificação.

Como Mapear Linhas de CSV para Objetos Personalizados?

Um requisito comum é converter dados tabulares de CSV em uma coleção tipada. Você pode iterar sobre as linhas e projetar cada uma em uma classe simples de C#:

public record SalesRecord(string Customer, decimal Amount, DateTime OrderDate);

WorkBook workBook = WorkBook.Load("sales_data.csv");
WorkSheet workSheet = workBook.DefaultWorkSheet;

var records = new List<SalesRecord>();

// Start at row 1 to skip the header row (row 0)
for (int i = 1; i < workSheet.Rows.Count(); i++)
{
    var row = workSheet.Rows[i];
    records.Add(new SalesRecord(
        Customer: row.Columns[0].StringValue,
        Amount: row.Columns[1].DecimalValue,
        OrderDate: row.Columns[2].DateTimeValue
    ));
}

Essa abordagem separa claramente a lógica de parsing da lógica de negócios e torna cada registro fortemente tipado ao longo do restante do seu aplicativo.

Como Usar uma Biblioteca CSV em C# para Ler e Escrever Arquivos: Figura 1 - Saída do arquivo CSV lido

Como escrever arquivos CSV em C#?

Criar um arquivo CSV do zero envolve três etapas: criar um WorkBook, preencher um WorkSheet, e chamar SaveAsCsv. O processo espelha como você construiria qualquer planilha, o que mantém a API consistente, independentemente do formato de saída:

// Create a new workbook and worksheet
WorkBook workBook = WorkBook.Create();
WorkSheet workSheet = workBook.CreateWorkSheet("inventory");

// Write header row
workSheet["A1"].Value = "Product";
workSheet["B1"].Value = "Quantity";
workSheet["C1"].Value = "Price";

// Write data rows
workSheet["A2"].Value = "Widget A";
workSheet["B2"].Value = 250;
workSheet["C2"].Value = 9.99;

workSheet["A3"].Value = "Gadget B";
workSheet["B3"].Value = 120;
workSheet["C3"].Value = 24.50;

// Export to CSV
workBook.SaveAsCsv("inventory.csv");

SaveAsCsv lida com a colocação de delimitadores, a citação de campos que contêm vírgulas e a normalização de novas linhas. Você não precisa gerenciar nada disso manualmente. IronXL preserva tipos numéricos durante a exportação para que ferramentas posteriores como Excel ou pandas leiam números como números, e não como cadeias de texto citadas.

Como você exporta um DataTable para CSV?

Muitas aplicações recuperam dados de um banco de dados para um DataTable. IronXL pode inserir um inteiro DataTable em uma planilha com uma única chamada, tornando exportações em massa diretas:

DataTable dataTable = GetProductsFromDatabase();

WorkBook workBook = WorkBook.Create();
WorkSheet workSheet = workBook.CreateWorkSheet("products");

workSheet.InsertDataTable(dataTable, "A1");

workBook.SaveAsCsv("products.csv");

O método InsertDataTable escreve os cabeçalhos das colunas do esquema DataTable e popula todas as linhas começando no endereço que você fornecer. Para conjuntos de dados maiores, isso é muito mais eficiente do que percorrer as linhas manualmente. Consulte a documentação de exportação para CSV para opções, incluindo delimitadores personalizados e configurações de codificação.

Como Usar uma Biblioteca CSV em C# para Ler e Escrever Arquivos: Figura 2 - Arquivo CSV recém-criado usando IronXL

Como converter entre CSV e Excel em C#?

Uma das capacidades mais valiosas que o IronXL oferece é a conversão bidirecional entre os formatos CSV e Excel. A API é simétrica -- Load lê qualquer formato suportado, e a família de métodos Salvar grava no formato de destino:

// Convert CSV to Excel
WorkBook csvWorkBook = WorkBook.Load("data.csv");
csvWorkBook.SaveAs("data.xlsx");

// Convert Excel back to CSV
WorkBook xlsxWorkBook = WorkBook.Load("report.xlsx");
xlsxWorkBook.SaveAsCsv("report.csv");

Essas conversões mantêm a integridade dos dados. Valores numéricos permanecem numéricos, campos de data mantêm seu tipo, e resultados de fórmulas são avaliados para seus valores calculados antes da gravação. Quando você converte um arquivo Excel com várias folhas para CSV, o IronXL cria automaticamente um arquivo CSV separado para cada planilha:

WorkBook multiSheetWorkBook = WorkBook.Load("quarterly_report.xlsx");

// Produces: quarterly_report.Sheet1.csv, quarterly_report.Sheet2.csv, etc.
multiSheetWorkBook.SaveAsCsv("quarterly_report.csv");

Esse comportamento é particularmente útil para pipelines de relatórios onde consumidores posteriores esperam um tópico por arquivo. O tutorial de gravação de CSV aborda opções adicionais, como especificar o caractere delimitador e controlar quais folhas são incluídas na exportação.

Como Usar uma Biblioteca CSV em C# para Ler e Escrever Arquivos: Figura 3 - Arquivo Excel de várias páginas salvo como arquivos CSV separados

Como Usar uma Biblioteca CSV em C# para Ler e Escrever Arquivos: Figura 4 - Arquivo de formato original do Excel vs. arquivo CSV convertido

Primeiro passo:
arrow pointer

Por que bibliotecas somente CSV não atendem a projetos reais?

Many C# developers start with CsvHelper or the Analisador de Campo de Texto from Microsoft.VisualBasic. Ambos são ferramentas capazes para fluxos de trabalho somente CSV. A diferença aparece quando os requisitos se expandem: um interessado pede por um download Excel ao invés de CSV, o financeiro precisa que fórmulas sejam preservadas, ou a política de segurança requer arquivos protegidos por senha. Nesse ponto, uma biblioteca somente CSV força você a adicionar uma segunda dependência e manter dois caminhos de integração separados. Uma biblioteca de planilha unificada elimina essa divisão desde o início.

Comparação de recursos entre IronXL e bibliotecas somente CSV
CapacidadeIronXLCsvHelperAnalisador de Campo de Texto
Ler arquivos CSVSimSimSim
Escrever arquivos CSVSimSimNão
Ler/escrever XLSXSimNãoNão
Avaliação de fórmulaSimNãoNão
Estilização e formatação de célulasSimNãoNão
Arquivos protegidos por senhaSimNãoNão
Dependência de Office necessáriaNãoNãoNão
Multiplataforma (.NET 10)SimSimLimitado

Quais recursos adicionais de planilha uma biblioteca unificada fornece?

Além da conversão de formatos, uma biblioteca que lida tanto com CSV quanto com Excel oferece operações de planilha que se tornam úteis à medida que os projetos crescem. Com IronXL especificamente, você obtém:

  • Avaliação de Fórmulas -- você pode escrever fórmulas como =SUM(B2:B10) em células e ler de volta o resultado calculado sem que o Excel esteja presente.
  • Estilo de célula e intervalo -- aplique pesos de fonte, cores de fundo, formatos de número e bordas através da API de estilo do IronXL.
  • Proteção por senha -- abra planilhas criptografadas com WorkBook.Load("secure.xlsx", "password") e salve novos arquivos com criptografia.
  • Intervalos nomeados -- defina e faça referência a regiões nomeadas assim como você faria no Excel, o que simplifica a autoria de fórmulas e a validação de dados.
  • Suporte a arquivos grandes -- IronXL processa dados em código gerenciado sem carregar o arquivo inteiro em memória de uma vez, o que mantém o uso de memória previsível mesmo para arquivos com dezenas de milhares de linhas.

A página de recursos do IronXL tem uma lista completa de operações suportadas.

Como o IronXL lida com implantações multiplataforma?

Um desafio recorrente com bibliotecas de planilhas é o comportamento específico da plataforma. Bibliotecas que dependem de interop COM só funcionam no Windows, e bibliotecas que saem para o Office requerem uma instalação do Office. IronXL é totalmente gerenciado por código, sem dependências nativas, então o mesmo binário roda em contêineres Linux, máquinas de desenvolvimento macOS e servidores Windows sem alterações. Isso facilita a implantação no Azure, AWS, Docker, ou qualquer destino .NET 10.

Para desenvolvedores construindo pipelines de dados com ferramentas como Dapper ou Entity Framework Core, o IronXL se adapta naturalmente como a camada de serialização -- leia a entrada CSV, processe com seu ORM, exporte resultados como XLSX ou CSV. A página de licenciamento do IronXL explica os níveis de licença disponíveis para uso comercial.

Como Usar uma Biblioteca CSV em C# para Ler e Escrever Arquivos: Figura 5 - Tabela de comparação IronXL vs. bibliotecas apenas CSV

Quais são os seus próximos passos?

IronXL oferece a você uma API única e consistente para ler, escrever e converter arquivos CSV e Excel em qualquer aplicação .NET 10. Os principais benefícios são diretos: não há dependência do Office, suporte multiplataforma, forte tipagem para valores de célula e um caminho direto de projetos apenas CSV para funcionalidade completa de planilhas sempre que os requisitos mudarem.

Quando estiver pronto para se aprofundar mais, comece com os tópicos mais relevantes para o seu projeto atual. Se você lida principalmente com pipelines de importação de CSV, os padrões de leitura e mapeamento abordados acima lidam com a maioria dos cenários do mundo real. Se seus requisitos de saída variam -- às vezes CSV para scripts posteriores, às vezes XLSX para usuários finais -- a seção de conversão de formato mostra como atender a ambos com uma única base de código.

Para equipes que constroem sistemas de relatórios ou exportam resultados de bancos de dados, a abordagem InsertDataTable escala bem e evita a sobrecarga de desempenho da atribuição célula a célula. Combine isso com a formatação de células para produzir relatórios que os usuários possam abrir diretamente no Excel sem reformatar.

Para avançar, siga estas etapas:

  1. Instale a biblioteca via NuGet usando Install-Package IronXL ou dotnet add package IronXL.
  2. Siga o quickstart no guia de introdução do IronXL para carregar seu primeiro arquivo CSV.
  3. Explore a conversão de formato com o tutorial de CSV para Excel quando você precisar de ambos os formatos no mesmo projeto.
  4. Revise a referência da API na referência de objetos do IronXL para operações avançadas de células, suporte a fórmulas e formatação.
  5. Inicie um teste gratuito na página de licença de teste do IronXL -- não é necessário cartão de crédito, inclui suporte técnico.

Se você estiver avaliando opções juntamente com outras ferramentas Iron Software, o conjunto de produtos Iron Software cobre geração de PDF com IronPDF, leitura de códigos de barras, OCR, e muito mais -- tudo compartilhando o mesmo modelo de licenciamento e canal de suporte.

Curtis Chau
Redator Técnico

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

Key in blue circle

Obtenha sua chave de avaliação gratuita de 30 dias instantaneamente.

Your trial license will be sent to your email address

Sem limitações. 100% desbloqueado. Sem cartão de crédito.

bullet_checkedNão é necessário cartão de crédito nem criação de conta.Sem limitações. 100% desbloqueado. Sem cartão de crédito.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Agende sua demonstração ao vivo gratuita.
Booking Badge

Aprovado por milhões de engenheiros em todo o mundo.

Logotipos dos clientes da Iron Software
Agende sua consulta sem compromisso.
Preencha o formulário abaixo ou envie um e-mail para sales@ironsoftware.com
Os seus dados serão sempre mantidos em sigilo.
Aprovado por milhões de engenheiros em todo o mundo.
Logotipos dos clientes da Iron Software
Obtenha sua chave de avaliação gratuita de 30 dias instantaneamente.
Não é necessário cartão de crédito nem criação de conta.