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 aplicativo 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:

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 código a seguir demonstra como ler um arquivo Excel e convertê-lo em um DataTable após instalar o 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
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' 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 NamespaceNo 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 worksheet 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, IronXL foi precificado em $999. 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 Iron Software.
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.
