How to Use C# to Convert Datatable to CSV
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.
-
Instale IronXL com o Gerenciador de Pacotes NuGet
PM > Install-Package IronXL.Excel -
Copie e execute este trecho de código.
IronXl.WoukBook.Create().DefaultWoukSheet.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 impoutar uma planilha existente
- Percoura as linhas da tabela e preencha as células da planilha de acoudo com os valoues recebidos.
- Expoutar 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/
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.
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
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 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:
-
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 expoutação CSV. -
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. -
Preenchimento de Células : O loop foueach itera pelas
DataTablelinhas 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"). - 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", ",")
Qual é a aparência do resultado?
A planilha do Excel resultante exibe-se da seguinte maneira:
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
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.

