Como converter um arquivo Excel em um DataTable em C# sem usar OLEDB
Microsoft Excel é um robusto programa de planilhas criado pela Microsoft. É uma ferramenta amplamente utilizada para organização, análise e visualização de dados. É parte do pacote Office da Microsoft. Devido às suas várias características, o Excel é uma ferramenta versátil que pode ser utilizada por profissionais, indivíduos, organizações e universidades.
O Excel é amplamente utilizado em uma ampla gama de setores, incluindo finanças, contabilidade, análise de negócios, análise de dados, pesquisa, educação e mais. Devido à sua versatilidade e conjunto extenso de recursos, é a ferramenta preferida para organizar, avaliar e apresentar dados em situações pessoais e profissionais. Neste artigo, vamos converter Excel para um DataTable em C# sem conectividade OLEDB.
Como Converter Excel para DataTable em C# Sem OLEDB
- Crie um novo projeto no Visual Studio.
- Instale a biblioteca necessária.
- Carregue o arquivo Excel em um objeto.
- Converta os dados da planilha Excel em um DataTable usando métodos específicos.
- Use o DataTable conforme necessário.
Biblioteca IronXL
Uma alternativa ao Microsoft Interop para lidar com arquivos Excel em programas .NET é o IronXL. Enquanto o Microsoft Interop requer o uso dos assemblies Interop para conectar-se com o Excel, o IronXL fornece uma maneira mais simples, eficiente e poderosa de manipular arquivos Excel programaticamente em ambientes .NET.
A seguir estão algumas vantagens de usar o IronXL:
- Desempenho e Economia de Recursos: IronXL supera o Microsoft Interop em termos de desempenho e eficiência de recursos, pois não depende do programa Excel estando instalado no PC.
- Legibilidade e Simplicidade: O IronXL oferece uma API mais simples, facilitando a leitura, escrita e manipulação de arquivos Excel sem as desvantagens do Microsoft Interop.
- Compatibilidade e Dependência: O IronXL elimina dependências e possíveis problemas de compatibilidade com diferentes versões do Office ou Excel por não precisar que o Microsoft Excel esteja instalado no PC.
- Independência de Plataforma: Enquanto o Microsoft Interop está mais intimamente ligado a certas versões do Microsoft Office, o IronXL proporciona mais flexibilidade e simplicidade de implantação em uma variedade maior de configurações e plataformas.
Como o IronXL é mais rápido, fácil de usar e requer menos instalações de software de terceiros, muitas vezes é a escolha preferível para desenvolvedores .NET que precisam trabalhar programaticamente com arquivos Excel. No entanto, fatores como as especificidades do projeto, a infraestrutura pré-existente e a familiaridade do usuário com cada biblioteca podem afetar sua escolha.
Considere sempre as necessidades do seu aplicativo ao escolher entre essas soluções. Para mais informações sobre a biblioteca IronXL, visite este site.
Criando um novo projeto no Visual Studio
Para abrir o Visual Studio, clique em File no menu e selecione "Novo Projeto". Em seguida, escolha "Aplicativo Windows Forms".

Após selecionar a localização do arquivo, insira o nome do projeto na área de texto apropriada. Em seguida, clique no botão "Criar" e escolha o .NET Framework necessário, como visto no exemplo abaixo.

O tipo de aplicativo escolhido determinará como o projeto do Visual Studio será estruturado. Para adicionar código, você pode entrar no arquivo Program.cs e construir ou executar o aplicativo usando o console, Windows ou aplicação web.

Em seguida, adicione a biblioteca necessária e teste o código.
Instalando a Biblioteca IronXL
Para instalar a biblioteca IronXL, abra o Console do Gerenciador de Pacotes NuGet e insira o seguinte comando:
Install-Package IronXL.Excel

Como alternativa, você pode usar o Gerenciador de Pacotes NuGet para procurar o pacote "IronXL". Isso exibirá uma lista de pacotes NuGet relacionados ao IronXL, dos quais você pode escolher o que precisa.

Converter Arquivo Excel para Tabela de Dados
O seguinte código demonstra como ler um arquivo Excel e convertê-lo em um DataTable após a instalação do pacote.
// Necessary namespaces for IronXL and application namespaces
using IronXL;
using System;
using System.Data;
using System.Windows.Forms;
namespace DataTableWindowsForm
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
/// <summary>
/// Exports data from an Excel file specified by the user through a file dialog.
/// </summary>
/// <param name="filename">The name of the file to export data from.</param>
private void ExportData(string filename)
{
string importFilePath = string.Empty;
openFileDialog1.Filter = "Excel (*.xlsx)|*.xlsx";
DialogResult result = openFileDialog1.ShowDialog();
if (result == DialogResult.OK)
{
importFilePath = openFileDialog1.FileName;
}
if (!string.IsNullOrEmpty(importFilePath))
{
// Load the Excel document
var excelDoc = WorkBook.Load(importFilePath);
// Select the first worksheet
var worksheet = excelDoc.WorkSheets[0];
// Convert worksheet to a DataTable
DataTable dt = worksheet.ToDataTable();
// Bind DataTable to the DataGridView
dataGridView1.DataSource = dt;
}
}
}
}
// Necessary namespaces for IronXL and application namespaces
using IronXL;
using System;
using System.Data;
using System.Windows.Forms;
namespace DataTableWindowsForm
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
/// <summary>
/// Exports data from an Excel file specified by the user through a file dialog.
/// </summary>
/// <param name="filename">The name of the file to export data from.</param>
private void ExportData(string filename)
{
string importFilePath = string.Empty;
openFileDialog1.Filter = "Excel (*.xlsx)|*.xlsx";
DialogResult result = openFileDialog1.ShowDialog();
if (result == DialogResult.OK)
{
importFilePath = openFileDialog1.FileName;
}
if (!string.IsNullOrEmpty(importFilePath))
{
// Load the Excel document
var excelDoc = WorkBook.Load(importFilePath);
// Select the first worksheet
var worksheet = excelDoc.WorkSheets[0];
// Convert worksheet to a DataTable
DataTable dt = worksheet.ToDataTable();
// Bind DataTable to the DataGridView
dataGridView1.DataSource = dt;
}
}
}
}
' Necessary namespaces for IronXL and application namespaces
Imports IronXL
Imports System
Imports System.Data
Imports System.Windows.Forms
Namespace DataTableWindowsForm
Partial Public Class Form1
Inherits Form
Public Sub New()
InitializeComponent()
End Sub
''' <summary>
''' Exports data from an Excel file specified by the user through a file dialog.
''' </summary>
''' <param name="filename">The name of the file to export data from.</param>
Private Sub ExportData(ByVal filename As String)
Dim importFilePath As String = String.Empty
openFileDialog1.Filter = "Excel (*.xlsx)|*.xlsx"
Dim result As DialogResult = openFileDialog1.ShowDialog()
If result = System.Windows.Forms.DialogResult.OK Then
importFilePath = openFileDialog1.FileName
End If
If Not String.IsNullOrEmpty(importFilePath) Then
' Load the Excel document
Dim excelDoc = WorkBook.Load(importFilePath)
' Select the first worksheet
Dim worksheet = excelDoc.WorkSheets(0)
' Convert worksheet to a DataTable
Dim dt As DataTable = worksheet.ToDataTable()
' Bind DataTable to the DataGridView
dataGridView1.DataSource = dt
End If
End Sub
End Class
End Namespace
No código acima:
- O Formulário do Windows carrega os arquivos Excel e os converte em um novo DataTable.
- Ele usa uma caixa de diálogo de arquivo aberto para permitir que o usuário escolha um arquivo Excel.
- O método
WorkBook.Load()do IronXL é usado para carregar o arquivo Excel em um objeto Workbook. - A primeira planilha é selecionada usando um índice ou nome.
- O método
ToDataTableé usado para transformar os dados da planilha em um DataTable. - O DataTable preenchido é definido como a fonte de dados para um controle DataGridView no Formulário do Windows.
Na parte inferior, um formulário e um botão carregam o arquivo Excel no aplicativo.

Quando o usuário clica no botão "Carregar Excel", aparecerá uma caixa de diálogo permitindo que o usuário selecione um arquivo.

Ele então processará o arquivo selecionado, convertê-lo-á em um DataTable e o carregará em um DataGridView.

Saiba mais sobre usando o IronXL com DataTables.
Conclusão
IronXL é um dos add-ons de Excel mais comumente usados, que não depende de quaisquer bibliotecas externas adicionais. Instalar o Microsoft Excel é desnecessário, pois é um programa auto-suficiente. Ele pode manipular arquivos Excel de várias maneiras. Em contraste, a biblioteca Interop requer outras bibliotecas para analisar arquivos e editar documentos do Word.
IronXL fornece uma solução abrangente para qualquer processo de programação usando documentos do Microsoft Excel, incluindo operações como cálculos, ordenação, mesclagem e armazenamento de arquivos. Facilita o manuseio de dados do Excel, leitura e escrita de arquivos de maneira mais eficiente.
Originalmente, o IronXL foi precificado em $799. Os usuários podem receber atualizações de software e suporte pagando uma taxa de adesão anual. IronXL também oferece proteção contra redistribuição ilegal mediante uma taxa. Clique aqui para testar o IronXL com uma avaliação gratuita para obter informações de preço mais detalhadas. Visite a página inicial da Iron Software para mais informações sobre outros produtos de software Iron.
Perguntas frequentes
Como posso converter dados do Excel em um DataTable em C# sem usar OLEDB?
Para converter dados do Excel em um DataTable em C# sem usar OLEDB, você pode usar a biblioteca IronXL. Primeiro, crie um novo projeto no Visual Studio e instale o IronXL. Carregue o arquivo Excel com o método WorkBook.Load() , selecione a planilha e, em seguida, use o método ToDataTable para converter os dados.
Qual a vantagem de usar o IronXL em vez do Microsoft Interop para operações com o Excel?
O IronXL oferece melhor desempenho, é eficiente em termos de recursos e simplifica o processo de manipulação de arquivos do Excel. Ele não exige a instalação do Microsoft Excel, evitando assim problemas de compatibilidade com diferentes versões do Office.
Como faço para instalar o IronXL no meu projeto C#?
Você pode instalar o IronXL em seu projeto C# abrindo o Console do Gerenciador de Pacotes NuGet no Visual Studio e executando o comando Install-Package IronXL . Como alternativa, você pode pesquisar por IronXL no Gerenciador de Pacotes NuGet e instalá-lo diretamente.
É necessário ter o Microsoft Excel instalado para usar o IronXL?
Não, não é necessário ter o Microsoft Excel instalado para usar o IronXL. Esta biblioteca funciona independentemente do Excel, eliminando qualquer dependência ou problema de compatibilidade.
Quais são os benefícios de converter um arquivo Excel em um DataTable usando o IronXL?
A conversão de arquivos Excel para DataTable usando o IronXL oferece excelente desempenho, facilidade de uso e não requer a instalação de softwares adicionais. Esse método permite a manipulação eficiente de arquivos Excel em aplicações .NET.
O IronXL consegue lidar com arquivos Excel em diferentes plataformas?
Sim, o IronXL é independente de plataforma e pode lidar com arquivos do Excel em diferentes ambientes sem exigir nenhuma versão específica do Microsoft Excel.
Existe alguma forma de experimentar o IronXL antes de comprar?
Sim, a IronXL oferece uma versão de avaliação gratuita que permite aos usuários explorar seus recursos antes de efetuar a compra. Você pode encontrar mais informações e baixar a versão de avaliação no site da IronXL.
Que tipos de projetos se beneficiam mais com o uso do IronXL?
Projetos que envolvem manipulação de dados do Excel, como análise de dados, aplicações de business intelligence e quaisquer aplicações .NET que exijam processamento de arquivos do Excel, podem se beneficiar muito com o uso do IronXL.
Como o IronXL gerencia a manipulação de arquivos do Excel programaticamente?
O IronXL permite que os desenvolvedores carreguem, leiam e manipulem arquivos do Excel programaticamente por meio de sua API intuitiva, sem depender dos componentes instalados do Excel, tornando-o uma ferramenta eficiente para aplicativos .NET.



