How to Use C# to Convert Datatable to CSV
Converta um DataTable para CSV em C# usando IronXL criando um WorkBook, preenchendo-o com linhas DataTable, e chamando o método SaveAsCsv() - sem loops complexos ou Interop necessário.
Início Rápido: Exportaçã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 WorkBook e seu DefaultWorkSheet para exportar em segundos usando SaveAsCsv.
-
Instale IronXL com o Gerenciador de Pacotes NuGet
-
Copie e execute este trecho de código.
IronXL.WorkBook.Create().DefaultWorkSheet.SaveAsCsv("output.csv", ","); -
Implante para testar em seu ambiente de produção.
Comece a usar IronXL em seu projeto hoje com uma avaliação gratuita
Fluxo de trabalho mínimo (5 etapas)
- Baixe e instale a biblioteca de conversão DataTable para CSV em C#
- Utilize a classe
DataTablepara armazenar novos dados - Criar uma nova planilha ou importar uma planilha existente
- Percorra as linhas da tabela e preencha as células da planilha de acordo com os valores recebidos.
- Exportar para arquivo CSV com a função C#
SaveAsCsv
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/
or
- No Visual Studio, selecione o menu Projeto
- Clique em Gerenciar Pacotes NuGet
- Pesquise por
IronXL.Excel - Clique em Instalar
Qual Comando NuGet Devo Usar?
Install-Package IronXL.Excel
Por Que Escolher o Gerenciador de Pacotes NuGet?
NuGet é o método preferido para desenvolvedores .NET porque 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 formatos do Excel.
Tutorial de Como Fazer
Como criar e exportar um DataTable para CSV?
O processo de conversão de um DataTable para CSV envolve criar um WorkBook, preenchê-lo com dados, e usar a funcionalidade de escrita CSV integrada do IronXL. Essa abordagem é mais eficiente do que construir strings CSV manualmente ou usar métodos tradicionais de streaming de arquivo.
Qual Namespace Preciso Importar?
Primeiro, importe o namespace IronXL. IronXL fornece suporte abrangente para importar e exportar objetos DataSet e DataTable, tornando-o ideal para aplicativos orientados a banco de dados.
:path=/static-assets/excel/content-code-examples/how-to/csharp-datatable-to-csv-3.cs
using IronXL;
Imports IronXL
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
Como o Código Funciona Passo a Passo?
O código acima cria um DataTable, cria um novo workbook especificando 'OJ' como seu proprietário, e então usa um loop foreach para inserir dados do DataTable na planilha do Excel. Finalmente, o método SaveAsCsv exporta o datatable para CSV.
A divisão do processo:
-
Criação de DataTable: Inicialize um novo
DataTablee defina seu esquema adicionando colunas. Isso se assemelha à definição de uma estrutura de tabela de banco de dados. -
População de Dados: Adicione linhas ao
DataTableusando o métodoRows.Add(). Cada linha representa um registro para exportação CSV. -
Geração de Workbook: O método
WorkBook.Create()do IronXL inicializa um novo workbook do Excel. Você também pode criar planilhas com várias abas, se necessário. -
População de Célula: O loop foreach itera através das linhas
DataTablee mapeia cada valor para uma célula específica da planilha usando a sintaxe de referência de célula (por exemplo, "A1", "A2"). - Exportação CSV: O método
SaveAsCsv()lida com complexidades de formatação CSV, incluindo o escape adequado de caracteres especiais e manipulação de delimitadores.
E Sobre Cenários Avançados de DataTable?
Para DataTables complexos com múltiplas colunas, estenda o código assim:
// 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--
workbook.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--
workbook.SaveAsCsv("products.csv", ",");
' 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--
workbook.SaveAsCsv("products.csv", ",")
Qual é a aparência do resultado?
A planilha do Excel resultante exibe-se da seguinte maneira:
Como lidar com grandes DataTables?
Ao trabalhar com grandes DataTables contendo milhares de linhas, IronXL mantém 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:
:path=/static-assets/excel/content-code-examples/how-to/csharp-datatable-to-csv-6.cs
try
{
// Your DataTable to CSV conversion code
WorkBook wb = WorkBook.Create();
// ... rest of the code
wb.SaveAsCsv("output.csv", ",");
Console.WriteLine("CSV file created successfully!");
}
catch (Exception ex)
{
Console.WriteLine($"Error creating CSV: {ex.Message}");
}
Imports System
Try
' Your DataTable to CSV conversion code
Dim wb As WorkBook = WorkBook.Create()
' ... rest of the code
wb.SaveAsCsv("output.csv", ",")
Console.WriteLine("CSV file created successfully!")
Catch ex As Exception
Console.WriteLine($"Error creating CSV: {ex.Message}")
End Try
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 IronXLPerguntas 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.

