
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
DataRowdeDataTableem C# - Acessar a propriedade
ValueemCelle preencher a planilha com dados deDataRow - 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:
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.
Inclua 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, ";");
}
}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 ClassNo código acima, estamos exportando o DataTable para um arquivo Excel. Primeiro, estamos criando um DataTable, e então criamos os cabeçalhos das colunas. 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 adicionar isso ao objeto WorkBook.
Estamos usando um loop foreach para ler os valores do DataTable um por um e então adicionamos o valor à planilha. Depois que todos os valores são adicionados à planilha, salvamos em um arquivo CSV usando o método chamado SaveAsCsv — precisamos passar o delimitador e o nome do arquivo com a localização como um 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 do IronXL começa em $999. 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.

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 bem estruturados e visualmente atraentes.
Artigos relacionados



