COMPARAR COM OUTROS COMPONENTES

EPPlus: Ler Excel para Datatable em C# (Tutorial IronXL)

Curtis Chau
Curtis Chau
Updated: 19 de julho de 2026

Procurando uma biblioteca Excel para ler dados do Excel em um DataTable em C#?

Ler arquivos Excel em um DataTable em C# tem várias aplicações práticas em diferentes indústrias e domínios, como análise e relatório de dados, importação de dados para bancos de dados, migração de dados, validação e limpeza de dados, integração com outros sistemas, automação e processamento em lote.

Neste artigo, discutiremos e compararemos duas bibliotecas diferentes de Excel for .NET Core em C# que oferecem este recurso de ler dados de Excel e arquivos Excel em um DataTable. As bibliotecas são

  1. EPPlus
  2. IronXL

1. Biblioteca EPPlus

EPPlus é uma poderosa biblioteca de código aberto para criar e manipular arquivos Excel em C#. Ela fornece uma API simples e intuitiva que permite aos desenvolvedores gerar, ler e modificar planilhas Excel programaticamente, sem exigir instalação do Microsoft Office ou Excel nas máquinas servidoras ou clientes. Com o EPPlus, você pode facilmente criar planilhas, adicionar dados, aplicar formatos, criar gráficos e executar outras operações em arquivos Excel. Ela suporta tanto o formato .xls mais antigo quanto o formato .xlsx mais recente e proporciona um desempenho eficiente e gestão de memória. Seja para gerar relatórios dinâmicos, importar/exportar dados ou automatizar tarefas relacionadas ao Excel, o EPPlus oferece um conjunto abrangente de recursos e capacidades para simplificar o manuseio de arquivos Excel em aplicações C#.

2. IronXL

IronXL é uma biblioteca poderosa e versátil que capacita os desenvolvedores com a habilidade de ler, escrever e manipular arquivos Excel sem esforço dentro de suas aplicações .NET. Com sua API intuitiva e abrangente, o IronXL simplifica o processo, geralmente complexo, de trabalhar com planilhas, permitindo que os desenvolvedores extraiam dados, realizem cálculos, criem gráficos e gerem relatórios sem dificuldades. Seja automatizando tarefas de importação/exportação de dados, realizando análise de dados ou criando modelos dinâmicos do Excel, o IronXL fornece uma solução robusta que economiza tempo e esforço valiosos dos desenvolvedores, enquanto garante precisão e confiabilidade ao lidar com dados do Excel. Com sua integração perfeita, documentação extensa e ampla gama de recursos, o IronXL se destaca como a escolha preferida para desenvolvedores que buscam uma ferramenta confiável e eficiente para enfrentar os desafios associados à manipulação de arquivos do Excel no framework .NET.

3. Instalando a biblioteca EPPlus

Para instalar a biblioteca EPPlus em seu projeto C#, primeiro você precisa criar um novo projeto baseado em console no Visual Studio. Após isso, você pode facilmente instalá-la usando o Gerenciador de Pacotes NuGet.

Uma vez que o novo projeto é criado, vá para Ferramentas e passe o mouse sobre o Gerenciador de Pacotes NuGet, depois selecione 'Gerenciar Pacotes NuGet para Solução'.

Uma nova janela será aberta. Nesta nova janela, vá para a opção 'Procurar' e busque por 'EPPlus'. Uma lista de pacotes aparecerá, e você deve selecionar a versão estável mais recente. Então, clique no botão 'Instalar' do lado direito para instalar a biblioteca EPPlus.

Assim, a EPPlus será adicionada ao seu projeto.

4. Instalando IronXL

Existem muitos métodos para instalar o IronXL, mas nesta seção, discutiremos apenas a instalação do IronXL usando o Gerenciador de Pacotes NuGet.

Assim como na seção 3, crie um novo projeto e vá para 'Ferramentas' e abra o Gerenciador de Pacotes NuGet para soluções.

Na nova janela, digite a palavra-chave 'IronXL' na barra de busca. Uma lista aparecerá, e você pode selecionar o pacote IronXL que deseja instalar. Então, clique no botão 'Instalar' para instalar o IronXL em seu projeto.

Agora o IronXL está pronto para uso.

5. Lendo Arquivos do Excel e Dados para DataTable Usando a Biblioteca EPPlus

Nesta seção, vamos examinar o código para ler Excel como um DataTable usando o pacote Excel da biblioteca EPPlus em C#.

Precisamos de um arquivo Excel de exemplo para ler como um DataTable. Para esse propósito, geraremos um arquivo Excel de exemplo.

Abaixo está o código para ler o arquivo Excel como um DataTable.

using OfficeOpenXml;
using System;
using System.Data;
using System.IO;

class Program
{
    static void Main(string[] args)
    {
        var path = @"sample.xlsx"; // Specify the path to your Excel file
        var data = ExcelDataToDataTable(path, "Table");

        // Iterate through each row in the DataTable and print its contents
        foreach (DataRow row in data.Rows)
        {
            foreach (var wsrow in row.ItemArray)
            {
                Console.Write(wsrow + " ");
            }
            Console.WriteLine();
        }
    }

    /// <summary>
    /// Converts Excel sheet data to a DataTable.
    /// </summary>
    /// <param name="filePath">The path to the Excel file.</param>
    /// <param name="sheetName">The name of the worksheet to read from.</param>
    /// <param name="hasHeader">Indicates whether the Excel sheet has a header row.</param>
    /// <returns>DataTable containing Excel data.</returns>
    public static DataTable ExcelDataToDataTable(string filePath, string sheetName, bool hasHeader = true)
    {
        DataTable dt = new DataTable();
        var fi = new FileInfo(filePath);

        // Check if the file exists
        if (!fi.Exists)
            throw new Exception("File " + filePath + " does not exist.");

        // Set the license context for EPPlus
        ExcelPackage.LicenseContext = LicenseContext.NonCommercial;

        // Load the Excel file into an EPPlus ExcelPackage
        using (var xlPackage = new ExcelPackage(fi))
        {
            // Get the specified worksheet from the workbook
            var worksheet = xlPackage.Workbook.Worksheets[sheetName];

            // Convert the worksheet to a DataTable, optionally using the first row as column names
            dt = worksheet.Cells[1, 1, worksheet.Dimension.End.Row, worksheet.Dimension.End.Column].ToDataTable(c =>
            {
                c.FirstRowIsColumnNames = hasHeader;
            });
        }

        return dt;
    }
}

O código acima define um método que recebe parâmetros de entrada, como o caminho do arquivo e o nome da planilha, e retorna um DataTable como saída. Ele também itera por cada linha do DataTable, imprimindo os dados.

5.1. Saída

A saída será o conteúdo do arquivo Excel impresso no console.

6. Lendo Arquivos do Excel como um DataTable usando IronXL

Converter uma planilha Excel e lê-la como um DataTable é bastante fácil usando IronXL, com apenas algumas linhas de código. Além disso, usaremos o arquivo Excel anterior como entrada.

O exemplo de código a seguir realiza a mesma funcionalidade que o código acima, mas usando o IronXL.

using IronXL;
using System;
using System.Data;

class Program
{
    static void Main(string[] args)
    {
        // Load the Excel file into an IronXL WorkBook
        WorkBook workBook = WorkBook.Load("sample.xlsx");

        // Get the default worksheet from the workbook
        WorkSheet workSheet = workBook.DefaultWorkSheet;

        // Convert the worksheet to a DataTable, specifying that the first row contains column names
        DataTable table = workSheet.ToDataTable(true);

        // Iterate through each row in the DataTable and print its contents
        foreach (DataRow row in table.Rows)
        {
            foreach (var cell in row.ItemArray)
            {
                Console.Write(cell + " ");
            }
            Console.WriteLine();
        }
    }
}

No exemplo de código acima, estamos simplesmente carregando o arquivo Excel e convertendo-o para um DataTable usando o método workSheet.ToDataTable(true).

6.1 Saída

A saída será o conteúdo do arquivo Excel impresso no console.

7. Conclusão

Em conclusão, quando se trata de ler arquivos Excel e convertê-los para DataTables em C#, tanto EPPlus quanto IronXL são excelentes bibliotecas que oferecem recursos poderosos e simplificam o processo.

EPPlus é uma biblioteca de código aberto que fornece uma API direta para gerar, ler e modificar planilhas Excel programaticamente. Ele suporta os formatos .xls e .xlsx e oferece desempenho eficiente e gerenciamento de memória.

Por outro lado, IronXL é uma biblioteca versátil que permite aos desenvolvedores trabalharem sem esforço com arquivos Excel em aplicações .NET. Ele oferece uma API intuitiva e recursos abrangentes para extrair dados, realizar cálculos, criar gráficos e gerar relatórios. O IronXL simplifica tarefas complexas de manipulação de arquivos Excel, como importação/exportação de dados, análise de dados e criação de modelos dinâmicos.

Ao comparar os exemplos de código de ambos IronXL e EPPlus, descobrimos que o código do EPPlus é bastante extenso, complexo e difícil de ler. Por outro lado, o código do IronXL é bastante simples e fácil de ler. IronXL usa a planilha padrão, mas no EPPlus, você precisa dar o nome da planilha; do contrário, você receberá um erro.

Em resumo, eu recomendaria o IronXL em vez do EPPlus para manipular arquivos Excel e lê-los como DataTables. Além disso, o IronXL oferece muito mais recursos do que o EPPlus ao lidar com arquivos Excel com código simples. Para mais tutoriais sobre IronXL, por favor, visite o seguinte link.

{[{i:(EPPlus é uma marca registrada de seu respectivo proprietário. Este site não é afiliado, endossado ou patrocinado pelo EPPlus. Todos os nomes de produtos, logotipos e marcas são propriedade de seus respectivos proprietários. As comparações são apenas para fins informativos e refletem informações disponíveis publicamente no momento da redação.

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.

Leia mais

Artigos relacionados