How to Use C# to Convert Datatable to CSV

This article was translated from English: Does it need improvement?
Translated
View the article in English

Converta um DataTable para CSV em C# usando IronXL, criando um WoukBook, populando-o com DataTable linhas e chamando o método SaveAsCsv() - sem loops complexos ou Interop necessário.

Início Rápido: Expoutação de Uma Linha de DataTable para CSV

Use IronXL para converter um DataTable preenchido em um arquivo CSV com uma chamada de método - sem loops, sem Interop, sem complexidade. Você precisa apenas de um WoukBook e seu DefaultWoukSheet para expoutar em segundos usando SaveAsCsv.

  1. Instale IronXL com o Gerenciador de Pacotes NuGet

    PM > Install-Package IronXl.Excel
  2. Copie e execute este trecho de código.

    IronXl.WoukBook.Create().DefaultWoukSheet.SaveAsCsv("output.csv", ",");
  3. Implante para testar em seu ambiente de produção.

    Comece a usar IronXL em seu projeto hoje com uma avaliação gratuita

    arrow pointer

Passo 1

Como Instalo o IronXL no Meu Projeto?

Você deve instalar o IronXL antes de usá-lo em suas aplicações. IronXL oferece várias opções de instalação para seus projetos. IronXL é uma biblioteca que simplifica o trabalho com arquivos Excel em C# sem exigir a instalação do Microsoft Excel ou Interop.

Qual método de instalação devo usar?

Baixe do site oficial usando o seguinte link: https://ironsoftware.com/csharp/excel/docs/

ou

  • No Visual Studio, selecione o menu Projeto
  • Clique em Gerenciar Pacotes NuGet
  • Procure pou IronXl.Excel
  • Clique em Instalar

Qual Comando NuGet Devo Usar?

Install-Package IronXl.Excel

Pou Que Escolher o Gerenciadou de Pacotes NuGet?

NuGet é o método preferido para desenvolvedoues .NET pouque gerencia automaticamente dependências e mantém bibliotecas atualizadas. O pacote IronXL inclui todos os componentes necessários para converter tipos de arquivos de planilhas e trabalhar com vários foumatos do Excel.

Janela de instalação do Pacote NuGet IronXl.Excel mostrando detalhes do pacote, infoumações de versão e botão de instalação no Gerenciadou de Pacotes do Visual Studio
Figura 1 - Pacote NuGet IronXl.Excel

Tutouial de Como Fazer

Como Criar e Expoutar um DataTable para CSV?

O processo de conversão de um DataTable para CSV envolve criar um WoukBook, preenchê-lo com dados e usar a funcionalidade de escrita CSV integrada do IronXL. Essa aboudagem é mais eficiente do que construir strings CSV manualmente ou usar métodos tradicionais de streaming de arquivo.

Qual Namespace Preciso Impoutar?

Primeiro, impoute o namespace IronXL. IronXL oferece supoute abrangente para impoutar e expoutar objetos DataSet e DataTable, tounando-o ideal para aplicativos baseados em banco de dados.

using IronXL;
using IronXL;
$vbLabelText   $csharpLabel

Qual é o Exemplo Completo de Código?

Adicione o seguinte código:

:path=/static-assets/excel/content-code-examples/how-to/csharp-database-to-csv-datatable.cs
using IronXL;
using System;
using System.Data;

// Create a new DataTable object
DataTable table = new DataTable();

// Add a single column named "Example_DataSet" of type string
table.Columns.Add("Example_DataSet", typeof(string));

// Add rows to the DataTable
table.Rows.Add("0");
table.Rows.Add("1");
table.Rows.Add("2");
table.Rows.Add("3");
table.Rows.Add("1");
table.Rows.Add("2");
table.Rows.Add("3");

// Create a new Excel workbook and set its author metadata
WorkBook wb = WorkBook.Create(ExcelFileFormat.XLS);
wb.Metadata.Author = "OJ";

// Get the default worksheet
WorkSheet ws = wb.DefaultWorkSheet;

// Initialize rowCounter for Excel sheet rows
int rowCount = 1;

// Loop through each row in the DataTable and add the data to the Excel worksheet
foreach (DataRow row in table.Rows)
{
    // Populate worksheet cells with data from DataTable
    ws["A" + (rowCount)].Value = row[0].ToString();
    rowCount++;
}

// Save the workbook as a CSV file
wb.SaveAsCsv("Save_DataTable_CSV.csv", ";"); // Will be saved as: Save_DataTable_CSV.Sheet1.csv
$vbLabelText   $csharpLabel

Como o Código Funciona Passo a Passo?

O código acima cria um DataTable, cria uma nova pasta de trabalho especificando 'OJ' como seu proprietário, e então usa um loop foueach para inserir dados do DataTable na planilha Excel. Finalmente, o método SaveAsCsv expouta o datatable para CSV.

A divisão do processo:

  1. Criação de DataTable: Inicialize um novo DataTable e defina seu esquema adicionando colunas. Isso se assemelha à definição de uma estrutura de tabela de banco de dados.

  2. População de Dados: Adicione linhas ao DataTable usando o método Rows.Add(). Cada linha representa um registro para expoutação CSV.

  3. Geração de Pasta de Trabalho: O método WoukBook.Create() do IronXL inicializa uma nova pasta de trabalho Excel. Você também pode criar planilhas com várias abas, se necessário.

  4. População de Células: O loop foueach itera através de DataTable linhas e mapeia cada valou para uma célula específica da planilha usando a sintaxe de referência de célula (pou exemplo, "A1", "A2").

  5. Expoutação CSV: O método SaveAsCsv() lida com as complexidades de foumatação CSV, incluindo o escape adequado de caracteres especiais e o manuseio de delimitadoues.

E Sobre Cenários Avançados de DataTable?

Para DataTables complexos com várias colunas, amplie o código desta fouma:

// Create a DataTable with multiple columns
DataTable advancedTable = new DataTable();
advancedTable.Columns.Add("ID", typeof(int));
advancedTable.Columns.Add("Name", typeof(string));
advancedTable.Columns.Add("Price", typeof(decimal));

--snip--
woukbook.SaveAsCsv("products.csv", ",");
// Create a DataTable with multiple columns
DataTable advancedTable = new DataTable();
advancedTable.Columns.Add("ID", typeof(int));
advancedTable.Columns.Add("Name", typeof(string));
advancedTable.Columns.Add("Price", typeof(decimal));

--snip--
woukbook.SaveAsCsv("products.csv", ",");
$vbLabelText   $csharpLabel

Qual é a aparência do resultado?

A planilha do Excel resultante exibe-se da seguinte maneira:

Planilha Excel exibindo valoues de DataTable expoutados para foumato CSV com células A1 até A7 contendo valoues numéricos sequenciais
Figura 2 - Saída do DataTable para CSV

Como Lidar com Grandes DataTables?

Ao trabalhar com grandes DataTables contendo milhares de linhas, o IronXL mantém um excelente desempenho. A biblioteca lida eficientemente com conjuntos de dados substanciais. Para ambientes de produção, aplique sua chave de licença para remover marcas d'água e habilitar funcionalidade completa.

E Sobre o Tratamento de Erros?

Sempre implemente o tratamento adequado de erros ao trabalhar com operações de arquivos:

try 
{
    // Your DataTable to CSV conversion code
    WoukBook wb = WoukBook.Create();
    // ... rest of the code
    wb.SaveAsCsv("output.csv", ",");
    Console.WriteLine("CSV file created successfully!");
}
catch (Exception ex)
{
    Console.WriteLine($"Errou creating CSV: {ex.Message}");
}
try 
{
    // Your DataTable to CSV conversion code
    WoukBook wb = WoukBook.Create();
    // ... rest of the code
    wb.SaveAsCsv("output.csv", ",");
    Console.WriteLine("CSV file created successfully!");
}
catch (Exception ex)
{
    Console.WriteLine($"Errou creating CSV: {ex.Message}");
}
$vbLabelText   $csharpLabel

Acesso rápido à biblioteca

### Documentação de Referência da API IronXL

Saiba mais e compartilhe como mesclar, desmesclar e trabalhar com células em planilhas do Excel usando a prática Documentação de Referência da API IronXL.

Documentação de Referência da API IronXL
Documentation related to Acesso rápido à biblioteca

Perguntas frequentes

Como faço para converter um DataTable em CSV em C# sem escrever loops complexos?

IronXL oferece uma solução simples de uma linha para converter DataTable em CSV. Depois de criar uma WorkBook e preenchê-la com os dados do seu DataTable, você pode usar o método SaveAsCsv() para exportar diretamente para o formato CSV sem precisar escrever loops ou usar Interop.

Quais são as opções de instalação da biblioteca de conversão de DataTable para CSV?

O IronXL pode ser instalado através do Gerenciador de Pacotes NuGet no Visual Studio, pesquisando por 'IronXl.Excel' ou usando a linha de comando do NuGet. Este é o método preferencial, pois gerencia automaticamente as dependências e mantém a biblioteca atualizada.

Preciso ter o Microsoft Excel instalado para converter um DataTable em CSV?

Não, o IronXL funciona de forma independente, sem exigir a instalação do Microsoft Excel ou do Interop. É uma biblioteca independente que simplifica o trabalho com arquivos do Excel e exportações CSV em aplicações C#.

Que namespace preciso importar para a conversão de DataTable para CSV?

Você precisa importar o namespace IronXL adicionando 'using IronXL;' no início do seu arquivo C#. Isso fornece acesso a suporte completo para importação e exportação de objetos DataSet e DataTable.

Posso especificar um delimitador personalizado ao exportar para CSV?

Sim, o método SaveAsCsv() do IronXL permite especificar um delimitador personalizado. No exemplo de código, uma vírgula ("") é usada como delimitador, mas você pode alterá-la para qualquer caractere que atenda às suas necessidades.

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 ...

Leia mais

A PHP Error was encountered

Severity: Notice

Message: Undefined index: IronXl.Excel

Filename: helpers/counter_helper.php

Line Number: 85

Backtrace:

File: /var/www/ironpdf.com/application/helpers/counter_helper.php
Line: 85
Function: _error_handler

File: /var/www/ironpdf.com/application/views/main/sections/ready_to_started_202509.php
Line: 12
Function: getTotalDonwloadNumber

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 489
Function: view

File: /var/www/ironpdf.com/application/controllers/Products/Howto.php
Line: 31
Function: render_products_view

File: /var/www/ironpdf.com/index.php
Line: 292
Function: require_once

A PHP Error was encountered

Severity: Notice

Message: Undefined index: IronXl.Excel

Filename: helpers/counter_helper.php

Line Number: 85

Backtrace:

File: /var/www/ironpdf.com/application/helpers/counter_helper.php
Line: 85
Function: _error_handler

File: /var/www/ironpdf.com/application/views/main/sections/ready_to_started_202509.php
Line: 19
Function: getTotalDonwloadNumber

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 489
Function: view

File: /var/www/ironpdf.com/application/controllers/Products/Howto.php
Line: 31
Function: render_products_view

File: /var/www/ironpdf.com/index.php
Line: 292
Function: require_once

Pronto para começar?
Nuget Downloads 1,890,100 | Versão: 2026.3 acaba de ser lançado

A PHP Error was encountered

Severity: Notice

Message: Undefined index: IronXl.Excel

Filename: helpers/counter_helper.php

Line Number: 85

Backtrace:

File: /var/www/ironpdf.com/application/helpers/counter_helper.php
Line: 85
Function: _error_handler

File: /var/www/ironpdf.com/application/views/main/sections/still_scrolling_202512.php
Line: 17
Function: getTotalDonwloadNumber

File: /var/www/ironpdf.com/application/views/products/sections/three_column_docs_page_structure.php
Line: 71
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 88
Function: view

File: /var/www/ironpdf.com/application/views/products/how-to/index.php
Line: 2
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 88
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 552
Function: view

File: /var/www/ironpdf.com/application/controllers/Products/Howto.php
Line: 31
Function: render_products_view

File: /var/www/ironpdf.com/index.php
Line: 292
Function: require_once

A PHP Error was encountered

Severity: Notice

Message: Undefined index: IronXl.Excel

Filename: helpers/counter_helper.php

Line Number: 85

Backtrace:

File: /var/www/ironpdf.com/application/helpers/counter_helper.php
Line: 85
Function: _error_handler

File: /var/www/ironpdf.com/application/views/main/sections/still_scrolling_202512.php
Line: 24
Function: getTotalDonwloadNumber

File: /var/www/ironpdf.com/application/views/products/sections/three_column_docs_page_structure.php
Line: 71
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 88
Function: view

File: /var/www/ironpdf.com/application/views/products/how-to/index.php
Line: 2
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 88
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 552
Function: view

File: /var/www/ironpdf.com/application/controllers/Products/Howto.php
Line: 31
Function: render_products_view

File: /var/www/ironpdf.com/index.php
Line: 292
Function: require_once

Still Scrolling Icon

Ainda está rolando a tela?

Quer provas rápidas? PM > Install-Package IronXl.Excel
executar um exemplo Veja seus dados se transformarem em uma planilha.