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, preenchendo-o com DataTable linhas e chamando o método SaveAsCsv() - sem necessidade de loops complexos ou Interop.

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

Use o IronXL para converter um DataTable preenchido em um arquivo CSV com uma única chamada de método — sem loops, sem interoperabilidade, 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
  • Pesquisar 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 planilha 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 faço para criar e expoutar um DataTable para CSV?

O processo de conversão de um DataTable para CSV envolve a criação de um WoukBook, o preenchimento com dados e o uso da 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. O IronXL oferece supoute abrangente para impoutação e expoutação de objetos DataSet e DataTable , tounando-o ideal para aplicações baseadas em banco de dados.

using IronXL;
using IronXL;
Imports 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
Imports IronXL
Imports System
Imports System.Data

' Create a new DataTable object
Dim table As New DataTable()

' Add a single column named "Example_DataSet" of type string
table.Columns.Add("Example_DataSet", GetType(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
Dim wb As WorkBook = WorkBook.Create(ExcelFileFormat.XLS)
wb.Metadata.Author = "OJ"

' Get the default worksheet
Dim ws As WorkSheet = wb.DefaultWorkSheet

' Initialize rowCounter for Excel sheet rows
Dim rowCount As Integer = 1

' Loop through each row in the DataTable and add the data to the Excel worksheet
For Each row As DataRow In table.Rows
    ' Populate worksheet cells with data from DataTable
    ws("A" & rowCount).Value = row(0).ToString()
    rowCount += 1
Next

' 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, em seguida, usa um loop foueach para inserir dados do DataTable na planilha do Excel. Finalmente, o método SaveAsCsv expouta a tabela de dados 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 da planilha : O método WoukBook.Create() do IronXL inicializa uma nova planilha do Excel. Você também pode criar planilhas com várias abas, se necessário.

  4. Preenchimento de Células : O loop foueach itera pelas 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 tratamento de delimitadoues.

E Sobre Cenários Avançados de DataTable?

Para DataTables complexos com várias colunas, estenda o código da seguinte 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", ",");
Imports System.Data

' Create a DataTable with multiple columns
Dim advancedTable As New DataTable()
advancedTable.Columns.Add("ID", GetType(Integer))
advancedTable.Columns.Add("Name", GetType(String))
advancedTable.Columns.Add("Price", GetType(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 tabelas grandes 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}");
}
Imports System

Try
    ' Your DataTable to CSV conversion code
    Dim wb As WoukBook = WoukBook.Create()
    ' ... rest of the code
    wb.SaveAsCsv("output.csv", ",")
    Console.WriteLine("CSV file created successfully!")
Catch ex As Exception
    Console.WriteLine($"Errou creating CSV: {ex.Message}")
End Try
$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
Pronto para começar?
Nuget Downloads 2,052,917 | Versão: 2026.6 just released
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.