Como exportar um `DataTable` para CSV em C#
IronXL permite a conversão perfeita de DataTable para CSV em C# sem exigir a instalação do Microsoft Excel. Esta biblioteca .NET autônoma fornece uma API simples para converter automaticamente DataTables em arquivos CSV com estruturas e delimitadores personalizados, tornando a exportação de dados simples para desenvolvedores.
IronXL é uma biblioteca popular que permite que desenvolvedores interajam com documentos do Microsoft Excel em tecnologias C# .NET, incluindo arquivos CSV, sem precisar do Microsoft Excel instalado. Ela permite a conversão automática de tipos registrados para arquivos CSV e a gravação de arquivos CSV com estruturas personalizadas.
Quais Recursos a Biblioteca IronXL Oferece?
Documentos do Microsoft Excel podem ser lidos e convertidos em arquivos CSV usando a biblioteca C# IronXL .NET. IronXL é uma biblioteca de software .NET autônoma que pode ler uma variedade de formatos de planilha. Não depende de Microsoft.Office.Interop.Excel nem exige a instalação do Microsoft Excel.
Com a ajuda da API C# amigável do IronXL, você pode rapidamente ler, modificar e criar arquivos de planilha Excel no ambiente .NET. .NET Core, .NET Framework, Xamarin, Mobile, Linux, macOS e Azure são totalmente suportados pelo IronXL.
- As principais bibliotecas de planilhas Excel .NET Core e .NET Framework para C# incluem IronXL.
- Praticamente todos os Frameworks .NET são suportados, incluindo Aplicações de Console, Windows Forms e Aplicações Web.
- IronXL opera em sistemas operacionais Windows, Linux e macOS.
- IronXL torna a leitura de arquivos Excel simples e rápida.
- IronXL suporta múltiplos formatos de Excel: arquivos XLSX, XLS, CSV, TSV, XLST e XLSM.
- IronXL exporta arquivos para vários formatos, incluindo XLS, CSV, TSV, JSON e XML.
- IronXL gera cálculos de Excel e suporta fórmulas.
- IronXL suporta formatos de dados de colunas de Excel incluindo texto, números, datas, moedas e percentuais.
Para mais detalhes, visite a Visão Geral da Documentação do IronXL.
Como faço para criar um novo projeto no Visual Studio?
No Visual Studio, um projeto .NET deve ser criado antes que o framework IronXL possa ser usado. Qualquer edição do Visual Studio funcionará, mas a mais recente é recomendada. Dependendo das suas necessidades, você pode construir uma aplicação Windows Forms ou diferentes modelos de projeto. Para manter as coisas simples, este tutorial usará a Aplicação de Console.
Crie um novo projeto no Visual Studio.
Depois disso, insira o nome e o local do projeto.
Configure o novo projeto
Em seguida, selecione a seguinte estrutura. .NET Core 6 será usado neste projeto.
Selecione uma versão do .NET Framework
O arquivo program.cs será aberto após a aplicação gerar a solução para que você possa inserir o código do programa e construir/executar a aplicação.
O projeto de Aplicação de Console recém-criado
A biblioteca pode então ser adicionada e usada para avaliar o código. Para outros tipos de projetos como aplicações .NET MAUI ou projetos VB.NET, o processo é similar, mas com considerações específicas do framework.
Como Instalo a Biblioteca IronXL?
Existem quatro métodos para baixar e instalar a Biblioteca IronXL.
Os quais são:
- Instalando via Visual Studio
- Instalando usando o Console do Gerenciador de Pacotes do Visual Studio
- Baixando diretamente do site NuGet Baixando diretamente do site IronXL
Qual método devo usar para instalação do Visual Studio?
Usando o NuGet Package Manager, o módulo IronXL pode ser instalado. Para encontrar IronXL, você deve primeiro iniciar o NuGet Package Manager e depois procurar na aba de navegação. Instale o IronXL escolhendo-o nas listagens de busca. Depois disso, a biblioteca IronXL poderá usar este aplicativo.
A imagem abaixo demonstra como iniciar o NuGet Package Manager do Visual Studio.
Acesse o Gerenciador de Pacotes NuGet.
Instalar pacote IronXL na interface do NuGet Package Manager
Quando devo usar o Console do Gerenciador de Pacotes?
Muitos desenvolvedores preferem usar um console para realizar tarefas. Portanto, a instalação via terminal também é uma opção. Para instalar o IronXL usando a linha de comando, siga as instruções abaixo.
- Navegue até Ferramentas > NuGet Package Manager > interface do Gerenciador de Pacotes no Visual Studio.
-
Insira o seguinte comando na aba de console do gerenciador de pacotes:
Install-Package IronXL.Excel
- Aguarde o download e instalação do IronXL no projeto ativo.
Instalar o pacote IronXL na interface do Console do Gerenciador de Pacotes
Por que eu baixaria do site do NuGet?
O pacote NuGet pode ser baixado diretamente do site como uma terceira opção. Este método é particularmente útil ao trabalhar em ambientes com acesso restrito à internet ou quando você precisa gerenciar pacotes manualmente.
- Navegue para o link oficial do NuGet.
- A opção de download do pacote pode ser encontrada no menu à direita.
- Clique duas vezes no arquivo salvo. Ele será instalado imediatamente.
- Recarregue a solução depois disso e comece a utilizá-lo no projeto.
Como faço para instalar diretamente do site da IronXL?
Para baixar o pacote mais recente direto do site, clique neste link para baixar um arquivo ZIP do IronXL. Este link irá baixar um arquivo ZIP contendo a versão mais recente da biblioteca DLL do IronXL. Assim que o download terminar, extraia o conteúdo do arquivo ZIP para qualquer diretório de sua escolha.
Para adicionar o arquivo ao projeto após o download, siga os passos listados abaixo.
- Na janela da solução, clique com o botão direito no projeto.
- Selecione Referências e, em seguida, navegue até a pasta extraída que contém os DLLs do IronXL.
- Selecione o DLL e clique em OK para adicioná-lo ao projeto ativo como uma Referência.
Para cenários de implantação, você também pode configurar IronXL em contêineres Docker ou implantar em plataformas na nuvem como AWS Lambda e Azure Functions.
Como Exporto um DataTable para Arquivo CSV?
DataTables pode ser facilmente e rapidamente exportado para arquivos CSV usando IronXL. Ele ajuda a escrever dados em novos arquivos CSV com suporte para delimitadores personalizados e opções de codificação.
Primeiro, como mostrado na imagem de código abaixo, o namespace IronXL deve ser incluído para usar as classes e métodos do IronXL.
Adicione namespaces comuns
Arquivos Excel podem ser criados usando IronXL, que então os transforma em WorkBook objetos. Em seguida, realize várias operações nesses objetos. O código de exemplo abaixo irá criar um arquivo Excel convertendo um DataTable em uma planilha Excel.
using IronXL;
using System.Data;
// Entry point of the application
static void Main(string[] args)
{
// Specify the file path for the CSV file output
ExportToExcel("H:\\test.csv");
}
// Exports the DataTable to an Excel file and saves it as CSV
public static void ExportToExcel(string filepath)
{
// Create a DataTable and add columns and rows
DataTable table = new DataTable();
table.Columns.Add("DataSet_Fruits", typeof(string));
table.Rows.Add("Apple");
table.Rows.Add("Orange");
table.Rows.Add("Strawberry");
table.Rows.Add("Grapes");
table.Rows.Add("Watermelon");
table.Rows.Add("Bananas");
table.Rows.Add("Lemons");
// Create a new WorkBook and add the DataTable data to it
WorkBook wb = WorkBook.Create(ExcelFileFormat.XLS);
var writer = wb.DefaultWorkSheet;
int rowCount = 1;
foreach (DataRow row in table.Rows)
{
// Write each item from the DataTable into the worksheet starting from cell A1
writer["A" + (rowCount)].Value = row[0].ToString();
rowCount++;
}
// Save the workbook as a CSV file with a specified delimiter
wb.SaveAsCsv(filepath, ";");
}
using IronXL;
using System.Data;
// Entry point of the application
static void Main(string[] args)
{
// Specify the file path for the CSV file output
ExportToExcel("H:\\test.csv");
}
// Exports the DataTable to an Excel file and saves it as CSV
public static void ExportToExcel(string filepath)
{
// Create a DataTable and add columns and rows
DataTable table = new DataTable();
table.Columns.Add("DataSet_Fruits", typeof(string));
table.Rows.Add("Apple");
table.Rows.Add("Orange");
table.Rows.Add("Strawberry");
table.Rows.Add("Grapes");
table.Rows.Add("Watermelon");
table.Rows.Add("Bananas");
table.Rows.Add("Lemons");
// Create a new WorkBook and add the DataTable data to it
WorkBook wb = WorkBook.Create(ExcelFileFormat.XLS);
var writer = wb.DefaultWorkSheet;
int rowCount = 1;
foreach (DataRow row in table.Rows)
{
// Write each item from the DataTable into the worksheet starting from cell A1
writer["A" + (rowCount)].Value = row[0].ToString();
rowCount++;
}
// Save the workbook as a CSV file with a specified delimiter
wb.SaveAsCsv(filepath, ";");
}
Imports IronXL
Imports System.Data
' Entry point of the application
Shared Sub Main(ByVal args() As String)
' Specify the file path for the CSV file output
ExportToExcel("H:\test.csv")
End Sub
' Exports the DataTable to an Excel file and saves it as CSV
Public Shared Sub ExportToExcel(ByVal filepath As String)
' Create a DataTable and add columns and rows
Dim table As New DataTable()
table.Columns.Add("DataSet_Fruits", GetType(String))
table.Rows.Add("Apple")
table.Rows.Add("Orange")
table.Rows.Add("Strawberry")
table.Rows.Add("Grapes")
table.Rows.Add("Watermelon")
table.Rows.Add("Bananas")
table.Rows.Add("Lemons")
' Create a new WorkBook and add the DataTable data to it
Dim wb As WorkBook = WorkBook.Create(ExcelFileFormat.XLS)
Dim writer = wb.DefaultWorkSheet
Dim rowCount As Integer = 1
For Each row As DataRow In table.Rows
' Write each item from the DataTable into the worksheet starting from cell A1
writer("A" & (rowCount)).Value = row(0).ToString()
rowCount += 1
Next row
' Save the workbook as a CSV file with a specified delimiter
wb.SaveAsCsv(filepath, ";")
End Sub
O código acima exporta o DataTable para um arquivo Excel. Os títulos das colunas são criados uma vez que um DataTable é criado. Em seguida, adicione as linhas uma de cada vez após estabelecer a primeira coluna. O objeto WorkBook é criado após adicionar as colunas e linhas ao objeto DataTable para armazenar esses dados. O objeto WorkSheet é então construído, sendo adicionado ao objeto WorkBook.
Cada valor do DataTable é lido e adicionado usando um loop foreach antes de adicionar o valor ao WorkSheet. Após todos os valores terem sido adicionados à planilha, o método SaveAsCsv os salva em um arquivo CSV. Você pode especificar tanto o delimitador quanto a localização do arquivo como parâmetros.
Para cenários mais complexos, você pode querer exportar múltiplas DataTables como planilhas diferentes ou trabalhar com DataSets para uma organização de dados mais estruturada.
Trabalhando com Diferentes Formatos de CSV
IronXL oferece flexibilidade ao trabalhar com arquivos CSV. Aqui está um exemplo mostrando como exportar um DataTable com formatação e codificação personalizadas:
// Export with custom delimiter and encoding
public static void ExportToCSVWithOptions(DataTable dataTable, string filepath)
{
// Create workbook from DataTable
WorkBook wb = WorkBook.Create(ExcelFileFormat.XLSX);
WorkSheet ws = wb.CreateWorkSheet("DataExport");
// Add headers
for (int i = 0; i < dataTable.Columns.Count; i++)
{
ws[$"{(char)('A' + i)}1"].Value = dataTable.Columns[i].ColumnName;
}
// Add data rows
for (int row = 0; row < dataTable.Rows.Count; row++)
{
for (int col = 0; col < dataTable.Columns.Count; col++)
{
ws[$"{(char)('A' + col)}{row + 2}"].Value = dataTable.Rows[row][col];
}
}
// Save with custom delimiter (comma) and UTF-8 encoding
wb.SaveAsCsv(filepath, ",", System.Text.Encoding.UTF8);
}
// Export with custom delimiter and encoding
public static void ExportToCSVWithOptions(DataTable dataTable, string filepath)
{
// Create workbook from DataTable
WorkBook wb = WorkBook.Create(ExcelFileFormat.XLSX);
WorkSheet ws = wb.CreateWorkSheet("DataExport");
// Add headers
for (int i = 0; i < dataTable.Columns.Count; i++)
{
ws[$"{(char)('A' + i)}1"].Value = dataTable.Columns[i].ColumnName;
}
// Add data rows
for (int row = 0; row < dataTable.Rows.Count; row++)
{
for (int col = 0; col < dataTable.Columns.Count; col++)
{
ws[$"{(char)('A' + col)}{row + 2}"].Value = dataTable.Rows[row][col];
}
}
// Save with custom delimiter (comma) and UTF-8 encoding
wb.SaveAsCsv(filepath, ",", System.Text.Encoding.UTF8);
}
Imports System.Text
' Export with custom delimiter and encoding
Public Shared Sub ExportToCSVWithOptions(dataTable As DataTable, filepath As String)
' Create workbook from DataTable
Dim wb As WorkBook = WorkBook.Create(ExcelFileFormat.XLSX)
Dim ws As WorkSheet = wb.CreateWorkSheet("DataExport")
' Add headers
For i As Integer = 0 To dataTable.Columns.Count - 1
ws($"{ChrW(AscW("A"c) + i)}1").Value = dataTable.Columns(i).ColumnName
Next
' Add data rows
For row As Integer = 0 To dataTable.Rows.Count - 1
For col As Integer = 0 To dataTable.Columns.Count - 1
ws($"{ChrW(AscW("A"c) + col)}{row + 2}").Value = dataTable.Rows(row)(col)
Next
Next
' Save with custom delimiter (comma) and UTF-8 encoding
wb.SaveAsCsv(filepath, ",", Encoding.UTF8)
End Sub
Esta abordagem lhe dá mais controle sobre o processo de exportação, permitindo que você defina formatos de dados de célula e personalize a estrutura de saída.
O arquivo CSV de saída
A saída do exemplo de código em execução é mostrada acima. Na captura de tela, cada pedaço de dados da tabela de dados foi adicionado individualmente à nova planilha do Excel formada. Você também pode aplicar formatação às células antes de exportar ou adicionar fórmulas para valores calculados.
Para operações CSV mais avançadas, você pode:
- Ler arquivos CSV com delimitadores personalizados
- Escrever em arquivos CSV com codificação específica
- Converter entre diferentes formatos de planilha
- Exportar para formatos JSON ou XML
Para saber mais sobre o tutorial do IronXL clique neste como exportar para formatos Excel.
Por que devo usar IronXL para Exportação CSV?
Uma das ferramentas Excel mais populares é o IronXL. Ele não depende de nenhuma outra biblioteca de fontes externas. É autônomo e não requer a instalação do Microsoft Excel. Opera em vários canais.
IronXL fornece uma solução completa para todas as tarefas relacionadas a documentos do Microsoft Excel a serem implementadas programaticamente. Você pode realizar cálculo de fórmula, classificação de strings ou números, cortar e anexar, buscar e substituir, mesclar e desmesclar, salvar arquivos, etc. Você também pode definir formatos de dados de célula juntamente com validar dados da planilha. Ele também suporta leitura e escrita de arquivos CSV e ajuda você a trabalhar como dados do Excel.
Benefícios adicionais incluem:
- Proteção por senha para exportações de dados sensíveis
- Otimização de performance para grandes conjuntos de dados
- Suporte para formatação condicional no Excel antes da exportação CSV
- Suporte a intervalos nomeados e tabelas nomeadas
- Preservação de hiperlinks em formatos suportados
O preço inicial do IronXL no lançamento é $799. Ele também oferece aos usuários a opção de pagar uma taxa de assinatura de um ano para assistência ao produto e atualizações. Por uma taxa adicional, IronXL oferece segurança para redistribuição irrestrita. Para pesquisar informações de preços mais aproximadas, por favor visite esta página de licenciamento.
Perguntas frequentes
Como posso exportar um DataTable para um arquivo CSV em C#?
Você pode usar o IronXL para exportar um DataTable para um arquivo CSV criando uma WorkBook e exportando os dados para objetos de planilha. Isso permite uma conversão e exportação perfeitas sem a necessidade do Microsoft Excel.
Quais formatos de arquivo posso exportar usando esta biblioteca?
O IronXL permite exportar dados para vários formatos, como XLS, CSV, TSV e JSON, proporcionando flexibilidade para lidar com diferentes necessidades de dados.
É possível realizar operações semelhantes às do Excel com esta biblioteca?
Sim, o IronXL permite operações semelhantes às do Excel, como cálculos de fórmulas, classificação de dados e salvamento de arquivos, tornando-se uma ferramenta completa para tarefas de programação relacionadas ao Excel.
Preciso instalar o Microsoft Excel para usar esta biblioteca?
Não, o IronXL é uma biblioteca .NET independente que não requer a instalação do Microsoft Excel, permitindo que os desenvolvedores trabalhem com documentos do Excel diretamente em seus aplicativos C#.
Quais plataformas são compatíveis com esta biblioteca?
O IronXL é compatível com diversas plataformas, incluindo .NET Core, .NET Framework, Xamarin, bem como sistemas operacionais como Windows, Linux e macOS.
Como posso instalar a biblioteca IronXL no meu projeto?
O IronXL pode ser instalado em um projeto .NET usando o Visual Studio, acessando o Gerenciador de Pacotes NuGet ou baixando-o diretamente dos sites do NuGet ou do IronXL.
Quais são as opções de preços disponíveis para esta biblioteca?
A IronXL oferece um preço inicial com opções de assinatura anual que inclui assistência e atualizações do produto, proporcionando suporte contínuo e acesso aos recursos mais recentes.



