Ir para o conteúdo do rodapé
COMPARAR COM OUTROS COMPONENTES
Uma comparação entre IronXL e ClosedXML

Uma comparação entre IronXL e ClosedXML

Os aplicativos de software de hoje exigem a capacidade de criar bancos de dados e gerar relatórios usando arquivos Excel. Existem muitas bibliotecas disponíveis hoje que permitem aos usuários fazer isso sem a necessidade do Microsoft Excel.

Neste artigo, vamos discutir e comparar como trabalhar com documentos do Microsoft Excel programaticamente em tecnologias C# .NET usando duas das bibliotecas mais populares, IronXL e ClosedXML, para leitura, manipulação e escrita de relatórios Excel.

Tanto o IronXL quanto o ClosedXML fornecem métodos para criar, editar e ler documentos do Excel no framework .NET. A próxima pergunta é decidir qual biblioteca C# Excel é mais adequada para o seu projeto. Este artigo o ajudará a decidir a melhor opção para suas aplicações.

Vamos primeiro olhar o que ambas as bibliotecas têm a oferecer, e depois passar para a comparação em si.

A Biblioteca IronXL

IronXL é uma biblioteca .NET que facilita a leitura e edição de documentos Microsoft Excel com C#. IronXl.Excel é uma biblioteca de software independente .NET para ler uma ampla gama de formatos de planilha. Não requer a instalação do Microsoft Excel, nem depende do Interop.

IronXL é uma API C# intuitiva que permite ler, editar e criar arquivos de planilhas Excel em .NET com desempenho extremamente rápido. IronXL suporta totalmente .NET Core, .NET Framework, Xamarin, Mobile, Linux, macOS e Azure.

IronXL é uma biblioteca líder de planilhas Excel for .NET Core e .NET Framework em C#.

Conjunto de Recursos do IronXL

  • Carregar, ler e editar dados de XLS/XLSX/CSV/TSV
  • Salvar e exportar para XLS/XLSX/CSV/TSV/JSON
  • Objetos System.Data: Trabalhe com planilhas Excel como objetos System.Data.DataSet e System.Data.DataTable.
  • Fórmulas: Trabalhe com fórmulas Excel, recalculadas cada vez que uma folha é editada.
  • Intervalos: Sintaxe fácil de usar WorkSheet ["A1:B10"]. Combine e crie intervalos de forma intuitiva.
  • Ordenação: Ordenar intervalos, colunas e linhas.
  • Estilo: Estilos visuais das células, fonte, tamanho, padrão de fundo, borda, alinhamento e formatos numéricos.

Mais recursos do IronXL podem ser explorados usando este link.

ClosedXML

ClosedXML é uma biblioteca .NET para leitura, manipulação e escrita de arquivos Excel 2007+ (.xlsx, .xlsm). Tem como objetivo fornecer uma interface intuitiva e fácil de usar para lidar com a biblioteca OpenXML subjacente. O .xlsx é uma extensão de arquivo para um formato de arquivo de planilha API OpenXML subjacente usado pelo Microsoft Excel. Os arquivos .xlsm suportam macros. Os .xltm são arquivos de modelo habilitados para macros. O formato .xls é um formato binário proprietário, enquanto o .xlsx é baseado no formato Office OpenXML.

ClosedXML é uma biblioteca .NET para geração de relatórios no Microsoft Excel sem exigir que o Excel esteja instalado na máquina que está executando o código.

Características do ClosedXML

ClosedXML tem uma interface fácil de usar com extensas funções de API para lidar com a criação e extração de conteúdo no Excel. Com essas chamadas de API e pull requests, você pode modificar cada pequeno detalhe em uma planilha ou livro de Excel. Todos os recursos estão listados abaixo:

  1. Fórmulas
  2. Validação
  3. Hiperlinks
  4. Proteção (nível de Planilha e Célula)
  5. Formatação Condicional
  6. Congelar Painéis
  7. Tabelas
  8. Intervalos
  9. Estilização
  10. Configuração de Página (Impressão)
  11. Filtros Automáticos
  12. Comentários

O restante deste artigo continua da seguinte forma:

  1. Crie uma Aplicação de Console
  2. Instalação da Biblioteca C# IronXL
  3. Instalação ClosedXML
  4. Crie e Salve um novo Livro e Planilha Excel
  5. Ler Arquivo Excel
  6. Trabalhando com Fórmulas Excel
  7. Licenciamento
  8. Resumo e Conclusão

1. Criar um Aplicativo de Console

Use os seguintes passos para criar um Aplicativo de Console:

  • Inicie o IDE do Visual Studio 2022.
  • Clique em "Criar um novo projeto."
  • Na página "Criar um novo projeto", selecione C# na lista suspensa de linguagem, Windows da lista de Plataformas, e Console da lista de Tipos de projeto.
  • Selecione Console App (.NET Framework) dos modelos de projeto exibidos.
Criar um Projeto

Criar um Projeto

  • Clique em Próximo.
  • Nomeie o projeto "DemoApp" e clique em Avançar.
Projeto DemoApp

Projeto DemoApp

  • Na tela de Informações Adicionais, especifique a versão do Framework que você gostaria de usar. Usaremos o .NET Framework 6.0 neste exemplo.
.NET Framework 6.0

.NET Framework 6.0

  • Clique em Criar para completar o processo.

Agora, o projeto está criado e estamos quase prontos para testar as bibliotecas. No entanto, ainda precisamos instalá-las e integrá-las em nosso projeto. Vamos instalar o IronXL primeiro.

2. Instalação da Biblioteca IronXL C

Você pode baixar e instalar a biblioteca IronXL usando os seguintes métodos:

  1. Usando o Visual Studio com pacotes NuGet.
  2. Instalando manualmente o DLL.

Vamos dar uma olhada mais de perto em cada um.

2.1. Usando o Visual Studio com Pacotes NuGet

O Visual Studio fornece o Gerenciador de Pacotes NuGet para instalar pacotes NuGet em seus projetos. Você pode acessá-lo através do Menu Projeto, ou clicando com o botão direito do mouse no seu projeto no Solution Explorer.

Gerenciador de Pacotes

Gerenciador de Pacotes

  • Em seguida, na aba Procurar > pesquise por IronXl.Excel > Instalar
Instalação NuGet IronXL

Instalação NuGet IronXL

  • E pronto.

2.2. Instalando manualmente o DLL

Outra forma de baixar e instalar a Biblioteca C# IronXL é seguir as etapas abaixo para instalar o pacote NuGet IronXL através do Prompt de Comando do Desenvolvedor.

  • Abra o Prompt de Comando do Desenvolvedor — geralmente encontrado na pasta do Visual Studio.

Digite o seguinte comando:

Install-Package IronXl.Excel
  • Pressione Enter.
  • Isso irá baixar e instalar o pacote.
  • Recarregue seu projeto no Visual Studio e comece a usá-lo.

2.3. Adicionar Diretivas de Uso Necessárias

  1. No Explorador de Soluções, clique com o botão direito no arquivo Program.cs e depois clique em Ver Código.
  2. Adicione as seguintes diretivas using ao topo do arquivo de código:
using IronXL;
using IronXL;
$vbLabelText   $csharpLabel

Tudo pronto! IronXL está baixado, instalado e pronto para uso. No entanto, antes disso, devemos instalar o ClosedXML.

3. Instalação ClosedXML

Para instalar o pacote ClosedXML, você pode baixá-lo diretamente do NuGet ou do Gerenciador/Console de Pacotes NuGet no projeto.

For directly installing ClosedXML, click on this link.

3.1. Usando o Gerenciador/Console de Pacotes NuGet

Abra o Gerenciador de Pacotes NuGet do explorador de soluções do projeto, procure por ClosedXML e clique em instalar.

Instalação NuGet ClosedXML

Instalação NuGet ClosedXML

Ou:

  • Abra o Prompt de Comando do Desenvolvedor — geralmente encontrado na pasta do Visual Studio.

Digite o seguinte comando:

Install-Package ClosedXML
  • Pressione Enter.
  • Isso irá baixar e instalar o pacote.
  • Recarregue seu projeto no Visual Studio e comece a usá-lo.

3.2. Adicionar Diretivas de Uso Necessárias

  1. No Explorador de Soluções, clique com o botão direito no arquivo Program.cs e depois clique em Ver Código.
  2. Adicione as seguintes diretivas using ao topo do arquivo de código:
using ClosedXML.Excel;
using ClosedXML.Excel;
$vbLabelText   $csharpLabel

4. Criar e Salvar um Novo Workbook e Planilhas Excel

Um workbook é um arquivo Excel contendo múltiplas planilhas com linhas e colunas. Ambas as bibliotecas fornecem a facilidade de criar um novo workbook e planilhas Excel. Vamos dar uma olhada no código passo a passo.

4.1. Novo Workbook e Planilhas Excel usando IronXL

Não poderia ser mais fácil criar um novo Workbook Excel usando IronXL. Basta uma linha de código. Sim, realmente. Adicione o seguinte código à sua função static void main no arquivo Program.cs:

// Create a new Excel workbook using IronXL
WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX);
// Create a new Excel workbook using IronXL
WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX);
$vbLabelText   $csharpLabel

Ambos os formatos de arquivo XLS (versão de arquivo do Excel mais antiga) e XLSX (versão de arquivo atual e mais nova) podem ser criados com IronXL.

E é ainda mais simples criar uma Planilha padrão:

// Create a new worksheet within the workbook
var worksheet = workbook.CreateWorkSheet("IronXL Features");
// Create a new worksheet within the workbook
var worksheet = workbook.CreateWorkSheet("IronXL Features");
$vbLabelText   $csharpLabel

Você pode agora usar a variável worksheet para definir valores de células e fazer quase tudo que um arquivo Excel pode fazer.

// Add data and styles to the new worksheet
worksheet["A1"].Value = "Hello World";
worksheet["A2"].Style.BottomBorder.SetColor("#ff6600");
worksheet["A2"].Style.BottomBorder.Type = IronXl.Styles.BorderType.Double;
// Add data and styles to the new worksheet
worksheet["A1"].Value = "Hello World";
worksheet["A2"].Style.BottomBorder.SetColor("#ff6600");
worksheet["A2"].Style.BottomBorder.Type = IronXl.Styles.BorderType.Double;
$vbLabelText   $csharpLabel

Salve o arquivo Excel:

// Save the spreadsheet
workbook.SaveAs("NewExcelFile.xlsx");
// Save the spreadsheet
workbook.SaveAs("NewExcelFile.xlsx");
$vbLabelText   $csharpLabel

O arquivo de saída se parece com o seguinte:

NewExcelFile Output

saída `NewExcelFile`

4.2. Novo Workbook e Planilhas Excel usando ClosedXML

Você também pode criar arquivos Excel (.xlsx, .xlsm) facilmente usando ClosedXML. O código a seguir é um exemplo típico que serve para gerar um arquivo Excel simples e salvá-lo. Você pode adicionar uma nova planilha de exemplo ao seu workbook e atribuir valores às células em sua aplicação Excel.

// Create a new empty Excel file
var workbook = new XLWorkbook();

// Create a new worksheet and set cell A1 value to 'Hello world!'
var worksheet = workbook.Worksheets.Add("ClosedXML Features");
worksheet.Cell("A1").Value = "Hello world!";

// Save to XLSX file
workbook.SaveAs("Spreadsheet.xlsx");
// Create a new empty Excel file
var workbook = new XLWorkbook();

// Create a new worksheet and set cell A1 value to 'Hello world!'
var worksheet = workbook.Worksheets.Add("ClosedXML Features");
worksheet.Cell("A1").Value = "Hello world!";

// Save to XLSX file
workbook.SaveAs("Spreadsheet.xlsx");
$vbLabelText   $csharpLabel

O arquivo de saída se parece com o seguinte:

Saída do Arquivo de Planilha

Saída do Arquivo de Planilha

5. Ler Arquivo Excel (Importar Arquivo Excel)

Ambas as bibliotecas podem abrir e ler documentos Excel existentes. Vamos dar uma olhada no exemplo de código.

5.1. Ler Arquivos Excel usando IronXL

A classe IronXL WorkBook representa uma planilha do Excel. Para abrir um arquivo Excel usando C#, usamos WorkBook.Load e especificamos o caminho do arquivo (.xlsx). O seguinte código de uma linha é usado para abrir o arquivo para leitura:

// Load WorkBook
var workbook = WorkBook.Load(@"Spreadsheets\\sample.xlsx");
// Load WorkBook
var workbook = WorkBook.Load(@"Spreadsheets\\sample.xlsx");
$vbLabelText   $csharpLabel

Cada WorkBook pode ter várias planilhas no documento do Excel. Se o workbook contiver várias planilhas, recupere-as pelo nome da seguinte forma:

// Open Sheet for reading
var worksheet = workbook.GetWorkSheet("sheetnamegoeshere");
// Open Sheet for reading
var worksheet = workbook.GetWorkSheet("sheetnamegoeshere");
$vbLabelText   $csharpLabel

Código para leitura dos valores das células:

// Read from ranges of cells elegantly
foreach (var cell in worksheet["A2:A10"])
{
    Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text);
}
// Read from ranges of cells elegantly
foreach (var cell in worksheet["A2:A10"])
{
    Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text);
}
$vbLabelText   $csharpLabel

5.2. Ler Arquivos Excel usando ClosedXML

ClosedXML permite a leitura de arquivos previamente criados da sua aplicação C#. Você pode importar um arquivo Excel usando o seguinte código.

// Import Excel file from file's path
var workbook = new XLWorkbook("SimpleTemplate.xlsx");

// Read worksheet from workbook using sheet number
var worksheet1 = workbook.Worksheet(1);

// Read cell value from the first sheet
var data = worksheet1.Cell("A1").GetValue<string>();

// Display on screen
Console.WriteLine(data);
// Import Excel file from file's path
var workbook = new XLWorkbook("SimpleTemplate.xlsx");

// Read worksheet from workbook using sheet number
var worksheet1 = workbook.Worksheet(1);

// Read cell value from the first sheet
var data = worksheet1.Cell("A1").GetValue<string>();

// Display on screen
Console.WriteLine(data);
$vbLabelText   $csharpLabel

6. Trabalhar com Fórmulas do Excel

As fórmulas do Excel são uma das características mais importantes ao trabalhar com Excel. Ambas as bibliotecas têm um motor poderoso de cálculo de fórmulas. Elas fornecem a facilidade de trabalhar com fórmulas e aplicá-las facilmente às células.

6.1. Trabalhar com Fórmulas do Excel usando IronXL

Após carregar o workbook e a planilha, o seguinte exemplo de código pode ser usado para fazer alterações nas fórmulas ou ser aplicado a células específicas. O código é o seguinte:

// Set formulas
worksheet["A1"].Formula = "=Sum(B8:C12)";
worksheet["B8"].Formula = "=C9/C11";
worksheet["G30"].Formula = "=Max(C3:C7)";

// Force recalculating all formula values in all sheets
workbook.EvaluateAll();
// Set formulas
worksheet["A1"].Formula = "=Sum(B8:C12)";
worksheet["B8"].Formula = "=C9/C11";
worksheet["G30"].Formula = "=Max(C3:C7)";

// Force recalculating all formula values in all sheets
workbook.EvaluateAll();
$vbLabelText   $csharpLabel

Você também pode recuperar fórmulas e seus valores:

// Get the formula's calculated value e.g. "52"
string formulaValue = worksheet["G30"].Value;

// Get the formula as a string e.g. "Max(C3:C7)"
string formulaString = worksheet["G30"].Formula;

// Save your changes with updated formulas and calculated values
workbook.Save();
// Get the formula's calculated value e.g. "52"
string formulaValue = worksheet["G30"].Value;

// Get the formula as a string e.g. "Max(C3:C7)"
string formulaString = worksheet["G30"].Formula;

// Save your changes with updated formulas and calculated values
workbook.Save();
$vbLabelText   $csharpLabel

6.2. Trabalhando com Fórmulas Excel usando ClosedXML

ClosedXML não suporta todas as fórmulas e você provavelmente receberá um erro desagradável se a fórmula não for suportada ou se houver um erro na fórmula. Por favor, teste suas fórmulas antes de ir para produção. Vamos dar uma olhada em como usá-las.

// Set formulas
worksheet.Cell("A1").Value = "Hello World!";
worksheet.Cell("A2").FormulaA1 = "=MID(A1, 7, 5)";

// You can use Evaluate function to directly calculate formula
var sum = worksheet.Evaluate("SUM(B1:B7)");

// Force recalculation
worksheet.RecalculateAllFormulas();

// Save Excel file
workbook.SaveAs("Formula Calculation.xlsx");
// Set formulas
worksheet.Cell("A1").Value = "Hello World!";
worksheet.Cell("A2").FormulaA1 = "=MID(A1, 7, 5)";

// You can use Evaluate function to directly calculate formula
var sum = worksheet.Evaluate("SUM(B1:B7)");

// Force recalculation
worksheet.RecalculateAllFormulas();

// Save Excel file
workbook.SaveAs("Formula Calculation.xlsx");
$vbLabelText   $csharpLabel

A propriedade FormulaA1 refere-se à célula A1. Se você estiver referenciando outra célula, deve adicioná-la à propriedade Formula. Por exemplo, FormulaC2.

7. Licenciamento

IronXL é uma biblioteca C# Excel abertamente comercial. É gratuito para desenvolvimento e pode sempre ser licenciado para implantação comercial. As licenças estão disponíveis para uso em um único projeto, desenvolvedores únicos, agências e corporações globais, além de redistribuição SaaS e OEM. Todas as licenças incluem garantia de reembolso de 30 dias, um ano de suporte e atualizações do produto, validade para desenvolvimento/teste/produção e também uma licença permanente (compra única). O pacote lite começa a partir de $799.

Pacotes de Licença IronXL

Pacotes de Licença IronXL

Para ClosedXML, as aplicações usando este arquivo DLL não requerem uma licença separada, seja para uso único ou comercial. Para que qualquer solução funcione com ClosedXML, basta instalar o pacote NuGet "ClosedXML" disponível publicamente. ClosedXML é licenciado sob a Licença MIT. A Licença MIT é uma licença permissiva curta e simples com condições que exigem apenas a preservação dos avisos de direitos autorais e de licença. Trabalhos licenciados, modificações e trabalhos maiores podem ser distribuídos sob termos diferentes e sem código-fonte.

Licença ClosedXML

Licença ClosedXML

8. Resumo e Conclusão

Resumo

IronXL é uma biblioteca completa que oferece tudo o que você precisa para manipular um arquivo Excel. IronXL permite que desenvolvedores leiam, gerem e editem Excel (e outros arquivos de planilha) em aplicações e sites .NET. Ela fornece uma abordagem rápida e natural para trabalhar com Excel e outros arquivos de planilha em C#.

ClosedXML é uma biblioteca .NET para ler e escrever arquivos Excel, o que torna mais fácil para desenvolvedores criar arquivos Excel 2007+. Ela fornece uma maneira agradável e orientada a objetos para manipular os arquivos (semelhante ao VBA) sem lidar com as dificuldades dos Documentos XML. Pode ser usada por qualquer linguagem .NET como C# e Visual Basic (VB). Ela fornece recursos do OpenXML, mas ainda alguns não estão implementados. Por exemplo, Macros, Inserção e Gráficos.

Conclusão

IronXL também é útil em outras operações do Excel, como formatos de dados de célula, ordenação e estilo de células. Ele também pode trabalhar com planilhas do Excel como System.Data.DataSet e System.Data.DataTable. Ele suporta aplicativos de console, servidor web e baseados em desktop. Também é suportado em todas as plataformas de SO.

ClosedXML é uma biblioteca leve para leitura, manipulação e escrita de aplicativos Excel usando a API OpenXML, que é rápida e fácil de implementar. Ajuda em todas as principais operações do Excel, como Configuração de Página, Congelar Painéis, Hiperlinks, Tabelas e Formatação Condicional. Não tem sobrecarga ou problemas de baixo desempenho.

Em comparação, IronXL e ClosedXML são rápidos e precisos quando se trata de planilhas do Excel. Eles não precisam da instalação ou licença do Microsoft Office ao criar relatórios do Excel. No entanto, IronXL tem uma vantagem sobre ClosedXML, pois ClosedXML não é seguro para threads. IronXL é fácil de usar e oferece a facilidade de converter outros formatos para XLSX e também de XLSX para outros formatos, como CSV e HTML. ClosedXML não permite essa conversão. Essa interconversão permite que os usuários trabalhem com facilidade com outros formatos de arquivo.

Agora você pode obter cinco produtos Iron pelo preço de apenas dois no pacote lite para 1 desenvolvedor($suitePrice) e ilimitado por $unlimitedSuitePrice e economizar até 60%.

ObserveClosedXML é uma marca registrada de seu respectivo proprietário. Este site não é afiliado, endossado ou patrocinado por ClosedXML. 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.

Perguntas frequentes

Como posso ler arquivos do Excel em C# sem usar Interop?

Para ler arquivos Excel em C# sem usar Interop, você pode usar bibliotecas como IronXL ou ClosedXML. Essas bibliotecas não exigem a instalação do Microsoft Excel e oferecem métodos para ler e manipular arquivos Excel programaticamente.

Quais são os benefícios de usar o IronXL para manipulação de arquivos do Excel?

O IronXL oferece uma API amigável, suporta uma ampla variedade de formatos de planilha e disponibiliza operações como classificação, formatação e manipulação de fórmulas. Além disso, é seguro para uso em múltiplas threads e permite a exportação para diversos formatos, tornando-se uma ferramenta versátil para manipulação de arquivos do Excel.

O IronXL consegue lidar com fórmulas do Excel?

Sim, o IronXL consegue lidar com fórmulas do Excel. Ele permite criar, avaliar e manipular fórmulas em arquivos do Excel, oferecendo funcionalidades robustas para operações complexas em planilhas.

Quais plataformas são suportadas pelo IronXL?

O IronXL oferece suporte a múltiplas plataformas, incluindo .NET Framework, .NET Core, Xamarin e Azure, tornando-se uma opção flexível para desenvolvedores que trabalham em diferentes ambientes.

Como posso converter um arquivo Excel para HTML usando C#?

Para converter um arquivo Excel em HTML usando C#, você pode usar o IronXL. Ele oferece métodos para exportar arquivos Excel para o formato HTML, permitindo o compartilhamento e a exibição fáceis de dados de planilhas na web.

Qual a diferença entre IronXL e ClosedXML em relação ao suporte a formatos?

O IronXL suporta uma ampla variedade de formatos, incluindo XLS, XLSX, CSV, TSV e JSON, e permite a conversão entre esses formatos. O ClosedXML concentra-se no processamento de arquivos do Excel 2007+ (.xlsx, .xlsm) usando o formato OpenXML.

Como posso instalar o IronXL em um projeto C#?

Você pode instalar o IronXL em um projeto C# usando o Gerenciador de Pacotes NuGet no Visual Studio com o comando Install-Package IronXl.Excel ou adicionando manualmente a DLL ao seu projeto.

Há algum requisito de licenciamento para usar o IronXL em projetos comerciais?

Sim, o IronXL requer uma licença comercial para implantação em projetos comerciais. Ele oferece diversas opções de licenciamento, incluindo licenças para projeto único, desenvolvedor, agência e corporativa, com garantia de reembolso de 30 dias.

Jordi Bardia
Engenheiro de Software
Jordi é extremamente proficiente em Python, C# e C++, e quando não está utilizando suas habilidades na Iron Software, dedica-se à programação de jogos. Compartilhando as responsabilidades por testes, desenvolvimento e pesquisa de produtos, Jordi agrega imenso valor à melhoria contínua dos produtos. Essa experiência diversificada o mantém ...
Leia mais

Iron Support Team

We're online 24 hours, 5 days a week.
Chat
Email
Call Me