Converter tabela de dados para Excel em C# (Tutorial com exemplo de código)
Pode ser difícil alterar programaticamente uma planilha do Excel, por duas razões principais. Primeiro, ao lidar com planilhas, os usuários devem manter uma interface consistente e estrutura de documento, o que nem sempre é simples. Segundo, nem sempre é claro qual código funcionará em situações específicas, particularmente quando cálculos sofisticados estão envolvidos. Há inúmeras razões pelas quais criar programaticamente um arquivo Excel é difícil. Os programadores devem primeiro transformar os dados no documento Excel em um formato legível, depois analisar os dados e analisá-los de volta, o que é ainda mais difícil. Eu tenho uma solução para este problema. Vou ensinar como fazer um arquivo Excel e exportar programaticamente um DataTable para uma planilha Excel sem nenhum problema usando a biblioteca IronXL .NET Excel. Vamos começar:
Como Exportar DataTable para Excel em C#
- Instale a biblioteca C# para exportar DataTable para Excel
- Crie uma nova pasta de trabalho do Excel e acesse uma planilha.
- Iterar através de `DataRow` de `DataTable` em C#
- Acessar a propriedade `Value` em `Cell` e preencher a planilha com dados de `DataRow`
- Exportar planilha do Excel para o local desejado
Recursos do IronXL
- IronXL é executado em uma variedade de Sistemas Operacionais, incluindo Windows, Linux e macOS.
- Quase todos os Frameworks .NET são suportados pelo IronXL, incluindo Console, Aplicação Windows Forms e Aplicação Web.
- IronXL torna a leitura de arquivos Excel direta e fácil.
- Podemos carregar, editar, exportar DataTables, exportar conjuntos de dados e ler formatos de arquivos Excel como arquivos XLSX, XLS, CSV, TSV, XLST, XLSM e mais com IronXL.
- IronXL nos permite salvar e exportar arquivos com uma variedade de extensões, incluindo XLS, CSV, TSV, JSON, XLSX e outros.
- Fórmulas Excel podem ser criadas pelo IronXL.
- Textos, Números, Fórmulas, Datas, Moeda, Percentagens e outros formatos de dados de células Excel são suportados pelo IronXL.
- Também oferece várias opções de ordenação como Intervalo, Colunas e Linhas, entre outras.
- A formatação de células no IronXL inclui fonte, tamanho, padrão de fundo, borda e alinhamento, entre outros.
- Podemos ler e exportar dados de um arquivo Excel usando IronXL.
- IronXL não requer que o Excel ou Interop estejam instalados no seu servidor. A API do IronXL é mais rápida e fácil de usar do que o Microsoft Office, Interop e Excel.
1 Criando um Novo Projeto no Visual Studio
Para usar a biblioteca IronXL, devemos criar um projeto .NET no Visual Studio. Você pode usar qualquer versão do Visual Studio, mas a versão mais recente é recomendada. Você pode criar uma aplicação como Windows Forms ou diferentes modelos de projeto, dependendo de suas necessidades. Vou usar a Aplicação de Console para este tutorial, para simplicidade.
Criar uma nova interface de projeto no Visual Studio
Em seguida, insira o nome do projeto e o local do projeto.
Etapa de configuração na criação de um novo projeto
Em seguida, selecione o framework abaixo. Neste projeto, vamos usar o .NET Core 6.
UI de seleção do .Net Framework
Uma vez que a aplicação cria a solução, ela abrirá o arquivo program.cs onde você pode inserir o código e compilar/executar a aplicação.
Arquivo program.cs vazio no novo projeto
Em seguida, podemos adicionar a biblioteca para testar o código.
2 Instalar a Biblioteca IronXL
A Biblioteca IronXL pode ser baixada e instalada de quatro maneiras.
Estes são:
- Usando o Visual Studio
- Usando a Linha de Comando do Visual Studio.
- Download direto do site NuGet .
- Download direto do site da IronXL.
2.1 Usando Visual Studio
Podemos instalar a biblioteca IronXL usando o Gerenciador de Pacotes NuGet. Você deve primeiro abrir o Gerenciador de Pacotes NuGet e, em seguida, procurar por IronXL na aba de navegação. Selecione IronXL nos resultados de busca e instale. Depois disso, nosso projeto estará pronto para usar a biblioteca IronXL.
A captura de tela abaixo mostra como podemos abrir o Gerenciador de Pacotes NuGet no Visual Studio.
Navegar até o Gerenciador de Pacotes NuGet no Visual Studio
IronXL nos resultados da pesquisa:
Buscar pela biblioteca IronXL
2.2 Usando a Linha de Comando do Visual Studio
Muitas pessoas gostam de usar um Console para realizar operações. Então, podemos instalá-lo pelo Console também. Siga os passos abaixo para instalar o IronXL via linha de comando.
- No Visual Studio, vá para Ferramentas -> Gerenciador de Pacotes NuGet -> Console do Gerenciador de Pacotes.
- Insira a seguinte linha na aba do Console do Gerenciador de Pacotes:
Install-Package IronXL.Excel
Agora o pacote será baixado/instalado no projeto atual e estará pronto para uso.
Instalar pacote IronXL via Console
2.3 Download direto do site do NuGet
A terceira maneira é baixar o pacote NuGet diretamente do site.
- Navegue até a página oficial do pacote IronXL no NuGet.
- Selecione a opção de pacote de download no menu à direita.
- Clique duas vezes no pacote baixado. Será instalado automaticamente. Em seguida, recarregue a solução e comece a usá-la no projeto.
2.4 Download direto do site da IronXL
Clique no link para baixar o pacote mais recente diretamente do site. Uma vez baixado, siga os passos abaixo para adicionar o pacote ao projeto.
- Clique com o botão direito do mouse no projeto na janela de soluções.
- Em seguida, selecione as opções de referência e procure o local da referência baixada.
- Depois, clique em ok para adicionar a referência.
3 Exportar Datatable para Arquivo Excel usando IronXL
IronXL nos permite exportar DataTables para arquivos Excel facilmente com um número limitado de passos.
Primeiro, precisamos incluir o namespace do IronXL como na captura de código abaixo. Uma vez adicionado, podemos usar as classes e métodos do IronXL em nosso código.
Incluir namespace do IronXL antes de usar a biblioteca
IronXL nos permite criar arquivos Excel e convertê-los em objetos de pasta de trabalho. Após convertê-los em objetos, podemos realizar vários tipos de operações. No exemplo de código abaixo, vamos converter um DataTable em uma planilha Excel, e então podemos criar um arquivo Excel.
using System;
using System.Data;
using IronXL;
public class ExcelExporter
{
/// <summary>
/// Exports a DataTable to an Excel file using IronXL.
/// </summary>
/// <param name="filePath">The file path where the Excel file will be saved.</param>
public static void ExportToExcel(string filePath)
{
// Creating a DataTable with a single column
DataTable table = new DataTable();
table.Columns.Add("DataSet_Animal", typeof(string));
// Adding some rows to the DataTable
table.Rows.Add("Lion");
table.Rows.Add("Tiger");
table.Rows.Add("Cat");
table.Rows.Add("Goat");
table.Rows.Add("Panther");
table.Rows.Add("Fox");
table.Rows.Add("Cheetah");
// Creating a new Excel Workbook
WorkBook wb = WorkBook.Create(ExcelFileFormat.XLS);
// Accessing the default worksheet
WorkSheet ws = wb.DefaultWorkSheet;
// Iterating through the DataTable rows
int rowCount = 1;
foreach (DataRow row in table.Rows)
{
// Adding each DataRow's first column value to the corresponding cell in the worksheet
ws["A" + rowCount].Value = row[0].ToString();
rowCount++;
}
// Saving the workbook to a CSV file at specified file path with ";" as delimiter
wb.SaveAsCsv(filePath, ";");
}
}
using System;
using System.Data;
using IronXL;
public class ExcelExporter
{
/// <summary>
/// Exports a DataTable to an Excel file using IronXL.
/// </summary>
/// <param name="filePath">The file path where the Excel file will be saved.</param>
public static void ExportToExcel(string filePath)
{
// Creating a DataTable with a single column
DataTable table = new DataTable();
table.Columns.Add("DataSet_Animal", typeof(string));
// Adding some rows to the DataTable
table.Rows.Add("Lion");
table.Rows.Add("Tiger");
table.Rows.Add("Cat");
table.Rows.Add("Goat");
table.Rows.Add("Panther");
table.Rows.Add("Fox");
table.Rows.Add("Cheetah");
// Creating a new Excel Workbook
WorkBook wb = WorkBook.Create(ExcelFileFormat.XLS);
// Accessing the default worksheet
WorkSheet ws = wb.DefaultWorkSheet;
// Iterating through the DataTable rows
int rowCount = 1;
foreach (DataRow row in table.Rows)
{
// Adding each DataRow's first column value to the corresponding cell in the worksheet
ws["A" + rowCount].Value = row[0].ToString();
rowCount++;
}
// Saving the workbook to a CSV file at specified file path with ";" as delimiter
wb.SaveAsCsv(filePath, ";");
}
}
Imports System
Imports System.Data
Imports IronXL
Public Class ExcelExporter
''' <summary>
''' Exports a DataTable to an Excel file using IronXL.
''' </summary>
''' <param name="filePath">The file path where the Excel file will be saved.</param>
Public Shared Sub ExportToExcel(ByVal filePath As String)
' Creating a DataTable with a single column
Dim table As New DataTable()
table.Columns.Add("DataSet_Animal", GetType(String))
' Adding some rows to the DataTable
table.Rows.Add("Lion")
table.Rows.Add("Tiger")
table.Rows.Add("Cat")
table.Rows.Add("Goat")
table.Rows.Add("Panther")
table.Rows.Add("Fox")
table.Rows.Add("Cheetah")
' Creating a new Excel Workbook
Dim wb As WorkBook = WorkBook.Create(ExcelFileFormat.XLS)
' Accessing the default worksheet
Dim ws As WorkSheet = wb.DefaultWorkSheet
' Iterating through the DataTable rows
Dim rowCount As Integer = 1
For Each row As DataRow In table.Rows
' Adding each DataRow's first column value to the corresponding cell in the worksheet
ws("A" & rowCount).Value = row(0).ToString()
rowCount += 1
Next row
' Saving the workbook to a CSV file at specified file path with ";" as delimiter
wb.SaveAsCsv(filePath, ";")
End Sub
End Class
No código acima, estamos exportando o DataTable para um arquivo Excel. Primeiro, estamos criando um DataTable, e então estamos criando cabeçalhos de coluna. Após criar as colunas, adicionamos as linhas uma a uma. Uma vez que as linhas são adicionadas, criamos o objeto WorkBook. Usando o objeto, podemos adicionar os dados à planilha Excel, e então podemos salvar os dados na localização. Estamos criando o objeto WorkSheet que permite criar uma planilha, e então podemos adicioná-la ao objeto WorkBook.
Estamos usando um loop foreach para ler os valores do DataTable um por um e então adicionamos o valor à planilha. Uma vez que todos os valores são adicionados à planilha, então os salvamos em um arquivo CSV usando o método chamado SaveAsCsv — precisamos passar o delimitador e nome do arquivo com localização como parâmetro. Um delimitador é um parâmetro opcional que podemos ignorar se não for necessário.
O código completo no Visual Studio
Acima está a captura completa de tela do código que estamos usando no .NET Core 6.
Resultado:
O resultado ao abrir o arquivo no Microsoft Excel
Acima está o resultado do exemplo de código executado. Na captura de tela, todos os dados disponíveis no DataTable foram adicionados à nova planilha do Excel criada um por um.
4 Conclusão
IronXL é uma das bibliotecas de Excel mais comumente usadas. Não depende de nenhuma outra biblioteca de terceiros. É independente e não precisa do MS Excel instalado. Funciona em várias plataformas. O preço inicial para o IronXL começa em $799. Além disso, oferece a opção de uma taxa anual para suporte ao produto e atualizações. IronXL oferece cobertura de redistribuição livre de royalties a um custo extra. Para saber mais sobre os detalhes de preços, visite nossa página de licenciamento.
Perguntas frequentes
Como posso exportar um DataTable para um arquivo Excel em C#?
Você pode usar as classes WorkBook e WorkSheet do IronXL para exportar um DataTable para um arquivo Excel. Crie um DataTable, itere por suas linhas e preencha o arquivo Excel com dados usando a API do IronXL.
Quais são as vantagens de usar o IronXL em vez do Interop para operações com o Excel?
O IronXL é mais rápido e eficiente que o Microsoft Interop, não requer a instalação do Microsoft Excel e suporta múltiplas plataformas e formatos de arquivo.
Quais formatos de arquivo o IronXL suporta para arquivos do Excel?
O IronXL suporta vários formatos de arquivo do Excel, incluindo XLSX, XLS, CSV, TSV, XLST e XLSM, permitindo uma manipulação versátil dos arquivos.
O IronXL consegue lidar com fórmulas do Excel ao exportar dados?
Sim, o IronXL consegue lidar com fórmulas do Excel, garantindo que cálculos complexos sejam preservados ao exportar dados de uma tabela de dados para um arquivo do Excel.
Quais sistemas operacionais são compatíveis com o IronXL?
O IronXL é compatível com diversos sistemas operacionais, incluindo Windows, Linux e macOS, permitindo o desenvolvimento multiplataforma.
É necessário ter o Microsoft Excel instalado para usar o IronXL?
Não, o IronXL funciona independentemente do Microsoft Excel, permitindo que você trabalhe com arquivos do Excel sem precisar ter o Excel instalado no seu servidor.
Como posso instalar o IronXL para uso em um projeto C#?
Você pode instalar o IronXL através do Gerenciador de Pacotes NuGet no Visual Studio, usando a linha de comando ou baixando-o diretamente dos sites do NuGet ou do IronXL.
Quais frameworks .NET são suportados pelo IronXL?
O IronXL oferece suporte a uma ampla gama de frameworks .NET, incluindo Console, Aplicativos Windows Forms e Aplicativos Web, tornando-o versátil para diferentes tipos de projetos.
O IronXL suporta a estilização e formatação de células em arquivos do Excel?
Sim, o IronXL oferece diversas opções de estilo e formatação de células, como definir estilos de fonte, cores e bordas, para melhorar a aparência dos arquivos do Excel.
Como o IronXL simplifica o processo de criação programática de arquivos do Excel?
O IronXL simplifica o processo ao fornecer uma API fácil de usar para criar, modificar e exportar arquivos do Excel sem as complexidades de manutenção de interfaces e estruturas exigidas por outros métodos.



