Saltar al pie de página
COMPARAR CON OTROS COMPONENTES

Una comparación entre IronXL y Syncfusion Excel

Manipular Excel programáticamente puede ser difícil para los desarrolladores. Hay varios problemas que surgen al tratar de editar archivos de Microsoft Excel. Los principales problemas son la dificultad con la interfaz de usuario y la falta de documentación, lo que hace que sea difícil manejar un archivo de Excel. Pero afortunadamente, ahora tenemos algunas bibliotecas de Excel escritas por programadores expertos. Estas bibliotecas ayudan en la edición de datos de archivos de Microsoft Excel. Aquí discutiré dos bibliotecas de Excel en C#:

  • IronXL: Biblioteca de Excel en C#
  • Syncfusion Excel Framework

Comencemos con una comparación de estas bibliotecas.

IronXL: Biblioteca de Excel para C

IronXL es una biblioteca de Excel en .NET de códigos en C# desarrollada por Iron Software que se utiliza para manipular documentos de Excel programáticamente. IronXL está escrita sobre el framework .NET y simplifica el proceso de desarrollar aplicaciones que normalmente requieren Microsoft Excel para funcionar.

IronXL proporciona al programador un conjunto de clases, métodos y propiedades que pueden usarse para leer y escribir datos desde/hacia un libro de trabajo de Excel, manipular objetos de libros de trabajo, acceder a fuentes de datos externas y cargar datos en un libro de trabajo de Excel.

Veamos las características de IronXL.

Características de IronXL

Hay muchas características de IronXL que lo hacen destacar de otras bibliotecas.

Cargar, leer y editar datos

Usando IronXL podemos cargar, leer y editar datos de documentos de hojas de cálculo como XLS, XLSX, XLST, XLSM, CSV y TSV. IronXL proporciona funciones muy simples y fáciles de recordar para crear, leer y editar estos documentos de hojas de cálculo. Proporciona un control completo sobre los documentos.

Creación de gráficos

IronXL tiene una vasta variedad de funciones para crear hojas de cálculo con gráficos personalizados. Tiene buena documentación API para apoyarlos.

Guardar y exportar

IronXL es excelente para guardar y exportar documentos en múltiples formatos. IronXL proporciona la facilidad de exportar o convertir archivos de Excel a los formatos XLS, XLSX, XLST, XLSM, CSV, TSV y JSON.

Trabajar con fórmulas

IronXL soporta trabajar con fórmulas en archivos de Excel. Podemos crear cualquier fórmula y aplicarla a cualquier celda según nuestras necesidades. IronXL tiene funciones excelentes y simples para ayudarnos a trabajar con fórmulas.

Formatos de datos de celda

Los usuarios de Excel a menudo necesitan emplear formato en las celdas de Excel. IronXL soporta características avanzadas de formato condicional. IronXL está aquí para ayudar a formatear los datos de las celdas con funciones simples y fáciles de usar. IronXL soporta todos los formatos soportados por Microsoft Excel. Puedes formatear datos con estos formatos:

  • Texto
  • Número
  • Fórmulas
  • Fechas
  • Moneda
  • Porcentajes
  • Científico
  • Hora
  • Formatos Personalizados

Estilo de celda

El estilizado de celdas es una característica importante de Microsoft Excel que ayuda a diferenciar datos importantes. Es muy útil, e IronXL también soporta esta característica. Puedes cambiar el estilo de fuente, tamaño de fuente, patrón de fondo, borde y alineación usando las funciones de IronXL.

Syncfusion Excel

La librería Syncfusion proporciona una API para leer, escribir y manipular archivos de Microsoft Excel (XLS). La librería Syncfusion es una librería en C# que puede ser utilizada por los desarrolladores para crear sus aplicaciones para leer, escribir y manipular archivos de Microsoft Excel (XLS). Importación de datos personalizada también es soportada. Es compatible con todos los sistemas operativos que soportan lenguajes de programación C#.

Características de Syncfusion Excel

Echemos un vistazo a las características de la librería Syncfusion Excel:

Echemos un vistazo a cómo funcionan estas bibliotecas. Para comprobar las diversas funcionalidades, primero necesitamos crear un proyecto en C#. Así que, empecemos.

1. Creación de un proyecto de C

Este tutorial usará la versión de Visual Studio 2019 (se recomienda la última versión) y el lenguaje de programación C# para construir un proyecto.

  • Abre Visual Studio 2019.
  • Haz clic en "Crear" para crear un nuevo proyecto.
  • Selecciona Aplicación Consola en C# de las plantillas y haz clic en el botón Siguiente.

Aplicación Consola Aplicación Consola

  • Dale un nombre al proyecto y haz clic en el botón Siguiente.

Configuración del Proyecto Configuración del Proyecto

  • Selecciona el .NET target framework >= 3.1 porque 3.1 es soportado y funciona en cada dispositivo. La última y más estable versión del framework .NET es 5.0. Haz clic en el botón Crear. Creará una aplicación de consola en C#.

.NET Target Framework .NET Target Framework

También puedes usar proyectos en C# existentes. Solo abre el proyecto e instala las bibliotecas. Veremos cómo podemos instalar las bibliotecas de Excel en la siguiente sección.

2. Instalación de la biblioteca IronXL

Hay múltiples formas de descargar e instalar la biblioteca IronXL. Estos son los siguientes:

  1. Consola de Administrador de Paquetes
  2. Usando el Administrador de Paquetes NuGet

2.1 Consola del administrador de paquetes

Podemos instalar la biblioteca IronXL usando la Consola del Administrador de Paquetes. Sigue los pasos a continuación para instalarla:

  • Abre la Consola del Administrador de Paquetes. Normalmente se encuentra hacia la parte inferior de Visual Studio.

Consola del Administrador de Paquetes Consola del Administrador de Paquetes

  • Escribe el siguiente comando y presiona Enter.

    Install-Package IronXL
    Install-Package IronXL
    SHELL
  • Comenzará a instalar la biblioteca IronXL.

Instalación de IronXL Instalación de IronXL

  • Después de la instalación, podemos usarla en nuestro proyecto.

2.2 Instalar mediante el Administrador de paquetes NuGet

Podemos instalar la biblioteca IronXL directamente desde el Administrador de Paquetes NuGet. Sigue estos pasos para instalar IronXL:

  • Haz clic en Herramientas en la barra de menú y desplázate sobre el Administrador de Paquetes NuGet.

Administrador de Paquetes NuGet Administrador de Paquetes NuGet

  • Selecciona Manejar Paquetes NuGet para la Solución. Haz clic en Buscar y escribe IronXL en la barra de búsqueda. Mostrará la biblioteca IronXL en los resultados de búsqueda.

Manejar Paquetes NuGet Manejar Paquetes NuGet

  • Haz clic en IronXL.Excel y haz clic en el botón Instalar. Instalará la biblioteca automáticamente.

3. Instalación de la biblioteca Excel de Syncfusion

Podemos instalar la biblioteca Syncfusion Excel usando la Consola del Administrador de Paquetes. A diferencia de IronXL, necesitamos instalar cada biblioteca de manera diferente para distintos proyectos, como Windows Forms, WPF, ASP.NET, UWP, y otros. Necesitamos escribir diferentes comandos para diferentes plataformas.

3.1 Instalación mediante la consola del administrador de paquetes

Sigue los pasos a continuación para instalar la biblioteca Syncfusion Excel:

  • Ve a la Consola del Administrador de Paquetes.
  • Escribe el siguiente comando para instalar la biblioteca Syncfusion Excel:

    Install-Package Syncfusion.XlsIO.WinForms
    Install-Package Syncfusion.XlsIO.WinForms
    SHELL
  • Escribe el siguiente comando si estás trabajando en un proyecto WPF:

    Install-package Syncfusion.XlsIO.Wpf
    Install-package Syncfusion.XlsIO.Wpf
    SHELL
  • Comenzará a instalar la biblioteca. Después de la instalación, puedes usar el framework Syncfusion Excel en tu proyecto fácilmente.

4. Lectura de un documento de Excel

Leer un documento de Excel es una funcionalidad principal de cualquier biblioteca de Excel. Echaremos un vistazo a cómo podemos leer archivos de Excel usando los frameworks IronXL y Syncfusion Excel.

4.1 Hierro XL

IronXL permite la lectura de documentos de Excel sin usar Microsoft.Office.Interop.Excel. Antes de comenzar con IronXL, hay un paso importante que se debe tomar: siempre importamos IronXL en nuestro archivo de programa. Así que, en la parte superior, debemos escribir la siguiente línea de código:

using IronXL;
using System.Linq;
using IronXL;
using System.Linq;
Imports IronXL
Imports System.Linq
$vbLabelText   $csharpLabel

Luego, escribe las siguientes líneas de código para leer y editar archivos de Excel sin la molestia de escribir múltiples líneas de código con conocimiento de programación básica.

// Supported spreadsheet formats for reading include: XLSX, XLS, CSV, and TSV
WorkBook workbook = WorkBook.Load("data.xlsx");
WorkSheet sheet = workbook.WorkSheets.First();

// Select cells easily in Excel notation and return the calculated value, date, text, or formula
int cellValue = sheet["A2"].IntValue;

// Read from Ranges of cells elegantly.
foreach (var cell in sheet["A2:B10"])
{
    Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text);
}
// Supported spreadsheet formats for reading include: XLSX, XLS, CSV, and TSV
WorkBook workbook = WorkBook.Load("data.xlsx");
WorkSheet sheet = workbook.WorkSheets.First();

// Select cells easily in Excel notation and return the calculated value, date, text, or formula
int cellValue = sheet["A2"].IntValue;

// Read from Ranges of cells elegantly.
foreach (var cell in sheet["A2:B10"])
{
    Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text);
}
' Supported spreadsheet formats for reading include: XLSX, XLS, CSV, and TSV
Dim workbook As WorkBook = WorkBook.Load("data.xlsx")
Dim sheet As WorkSheet = workbook.WorkSheets.First()

' Select cells easily in Excel notation and return the calculated value, date, text, or formula
Dim cellValue As Integer = sheet("A2").IntValue

' Read from Ranges of cells elegantly.
For Each cell In sheet("A2:B10")
	Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text)
Next cell
$vbLabelText   $csharpLabel

La función WorkBook.Load ayuda a cargar fácilmente el libro de trabajo. En el código proporcionado, también vemos los valores de las celdas y los imprimimos en la consola.

4.2 Syncfusion Excel

Veamos cómo podemos leer y editar archivos de Excel existentes usando el framework Syncfusion Excel. Primero, para usar el framework Syncfusion Excel, necesitamos importar Syncfusion a nuestro proyecto. Para hacer esto, tenemos que añadir las siguientes líneas de código en la parte superior del archivo de código:

using Syncfusion.XlsIO;
using System.Drawing;
using Syncfusion.XlsIO;
using System.Drawing;
Imports Syncfusion.XlsIO
Imports System.Drawing
$vbLabelText   $csharpLabel

A continuación, añade las siguientes líneas de código en el proyecto para leer y acceder a los archivos de Excel usando el framework Syncfusion Excel.

// Create an instance of new ExcelEngine
using (ExcelEngine excelEngine = new ExcelEngine())
{
    // Instantiate the Excel application object
    IApplication application = excelEngine.Excel;
    // Set the Excel engine application version
    application.DefaultVersion = ExcelVersion.Excel2016;

    // Load the existing Excel workbook
    IWorkbook workbook = application.Workbooks.Open("Sample.xlsx");

    // Get the first worksheet
    IWorksheet worksheet = workbook.Worksheets[0];

    // Assign some text in a cell
    worksheet.Range["A3"].Text = "Hello World";

    // Save the Excel document
    workbook.SaveAs("Output.xlsx");
}
// Create an instance of new ExcelEngine
using (ExcelEngine excelEngine = new ExcelEngine())
{
    // Instantiate the Excel application object
    IApplication application = excelEngine.Excel;
    // Set the Excel engine application version
    application.DefaultVersion = ExcelVersion.Excel2016;

    // Load the existing Excel workbook
    IWorkbook workbook = application.Workbooks.Open("Sample.xlsx");

    // Get the first worksheet
    IWorksheet worksheet = workbook.Worksheets[0];

    // Assign some text in a cell
    worksheet.Range["A3"].Text = "Hello World";

    // Save the Excel document
    workbook.SaveAs("Output.xlsx");
}
' Create an instance of new ExcelEngine
Using excelEngine As New ExcelEngine()
	' Instantiate the Excel application object
	Dim application As IApplication = excelEngine.Excel
	' Set the Excel engine application version
	application.DefaultVersion = ExcelVersion.Excel2016

	' Load the existing Excel workbook
	Dim workbook As IWorkbook = application.Workbooks.Open("Sample.xlsx")

	' Get the first worksheet
	Dim worksheet As IWorksheet = workbook.Worksheets(0)

	' Assign some text in a cell
	worksheet.Range("A3").Text = "Hello World"

	' Save the Excel document
	workbook.SaveAs("Output.xlsx")
End Using
$vbLabelText   $csharpLabel

Podemos ver que para leer archivos de Excel en Syncfusion Excel, primero necesitamos definir la versión de Excel. Luego podemos abrir el archivo y editarlo. Para guardar el archivo modificado, tenemos que definir el tipo de contenido del archivo modificado de acuerdo a la versión de Excel nuevamente. IronXL es muy fácil de entender y usar en este caso, porque no tuvimos que definir la versión de Excel, y porque tenemos funciones pequeñas y fáciles de recordar con parámetros en IronXL.

5. Creación de nuevos documentos de Excel

A continuación, compararemos los métodos para crear nuevos documentos de Excel y para poblar los documentos creados con valores. Primero, veremos cómo podemos crear documentos en IronXL.

5.1 Hierro XL

IronXL no requiere que Excel esté instalado en tu servidor o Interop. IronXL proporciona una API más rápida e intuitiva que Microsoft.Office.Interop.Excel. Como ya sabemos, necesitamos importar primero la biblioteca IronXL, y luego escribir el código para crear los archivos de Excel. El siguiente código se usa para crear archivos de Excel en IronXL.

using IronXL;
// Create a new Excel WorkBook document. 
WorkBook xlsxWorkbook = WorkBook.Create(ExcelFileFormat.XLSX);
xlsxWorkbook.Metadata.Author = "IronXL";

// Add a blank WorkSheet
WorkSheet xlsSheet = xlsxWorkbook.CreateWorkSheet("main_sheet");

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

// Save the Excel file
xlsxWorkbook.SaveAs("NewExcelFile.xlsx");
using IronXL;
// Create a new Excel WorkBook document. 
WorkBook xlsxWorkbook = WorkBook.Create(ExcelFileFormat.XLSX);
xlsxWorkbook.Metadata.Author = "IronXL";

// Add a blank WorkSheet
WorkSheet xlsSheet = xlsxWorkbook.CreateWorkSheet("main_sheet");

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

// Save the Excel file
xlsxWorkbook.SaveAs("NewExcelFile.xlsx");
Imports IronXL
' Create a new Excel WorkBook document. 
Private xlsxWorkbook As WorkBook = WorkBook.Create(ExcelFileFormat.XLSX)
xlsxWorkbook.Metadata.Author = "IronXL"

' Add a blank WorkSheet
Dim xlsSheet As WorkSheet = xlsxWorkbook.CreateWorkSheet("main_sheet")

' Add data and styles to the new worksheet
xlsSheet("A1").Value = "Hello World"
xlsSheet("A2").Style.BottomBorder.SetColor("#ff6600")
xlsSheet("A2").Style.BottomBorder.Type = IronXL.Styles.BorderType.Double

' Save the Excel file
xlsxWorkbook.SaveAs("NewExcelFile.xlsx")
$vbLabelText   $csharpLabel

Output:

Salida de IronXL Salida de IronXL

Podemos establecer los metadatos de los archivos de Excel. Es muy fácil establecer el valor de las celdas y formatear las celdas con funciones simples y fáciles de usar. Usamos la función Style.BottomBorder.SetColor para establecer el color del borde inferior de la celda.

5.2 Syncfusion Excel

El siguiente código demuestra cómo crear un nuevo archivo de Excel y guardarlo con Syncfusion Excel. Agrega el siguiente código e incluye los espacios de nombres necesarios:

using Syncfusion.XlsIO;
using Syncfusion.XlsIO;
Imports Syncfusion.XlsIO
$vbLabelText   $csharpLabel

Ahora añade las siguientes líneas de código:

// New instance of ExcelEngine is created equivalent to launching Microsoft Excel with no workbooks open
// Instantiate the spreadsheet creation engine
using (ExcelEngine excelEngine = new ExcelEngine())
{
  // Instantiate the Excel application object
  IApplication application = excelEngine.Excel;

  // Assigns default application version
  application.DefaultVersion = ExcelVersion.Excel2013;

  // Create a workbook with 1 worksheet
  IWorkbook workbook = application.Workbooks.Create(1);

  // Access first worksheet from the workbook
  IWorksheet worksheet = workbook.Worksheets[0];

  // Adding text to a cell
  worksheet.Range["A1"].Text = "Hello World";

  // Saving the workbook to disk in XLSX format
  workbook.SaveAs("Sample.xlsx");
}
// New instance of ExcelEngine is created equivalent to launching Microsoft Excel with no workbooks open
// Instantiate the spreadsheet creation engine
using (ExcelEngine excelEngine = new ExcelEngine())
{
  // Instantiate the Excel application object
  IApplication application = excelEngine.Excel;

  // Assigns default application version
  application.DefaultVersion = ExcelVersion.Excel2013;

  // Create a workbook with 1 worksheet
  IWorkbook workbook = application.Workbooks.Create(1);

  // Access first worksheet from the workbook
  IWorksheet worksheet = workbook.Worksheets[0];

  // Adding text to a cell
  worksheet.Range["A1"].Text = "Hello World";

  // Saving the workbook to disk in XLSX format
  workbook.SaveAs("Sample.xlsx");
}
' New instance of ExcelEngine is created equivalent to launching Microsoft Excel with no workbooks open
' Instantiate the spreadsheet creation engine
Using excelEngine As New ExcelEngine()
  ' Instantiate the Excel application object
  Dim application As IApplication = excelEngine.Excel

  ' Assigns default application version
  application.DefaultVersion = ExcelVersion.Excel2013

  ' Create a workbook with 1 worksheet
  Dim workbook As IWorkbook = application.Workbooks.Create(1)

  ' Access first worksheet from the workbook
  Dim worksheet As IWorksheet = workbook.Worksheets(0)

  ' Adding text to a cell
  worksheet.Range("A1").Text = "Hello World"

  ' Saving the workbook to disk in XLSX format
  workbook.SaveAs("Sample.xlsx")
End Using
$vbLabelText   $csharpLabel

El código anterior crea un nuevo objeto IWorkbook, y luego crea una hoja de trabajo dentro del libro de trabajo usando la función Workbooks.Create(). Accede a las celdas de las hojas de trabajo de Excel a través de su propiedad "cells", y luego finalmente guarda el archivo usando la función SaveAs().

6. Exportación de archivos de Excel

A continuación, veremos cómo podemos exportar archivos de Excel a otros formatos de datos. Esta es una característica importante para las bibliotecas de Excel porque a veces necesitamos datos en diferentes formatos para diferentes tipos de procesamiento, por eso verificaremos cuál biblioteca ofrece soluciones simples y fáciles.

6.1 Hierro XL

Usando IronXL, podemos convertir archivos de Excel con solo una línea de código. IronXL puede exportar datos de Excel a CSV, JSON, XML, XLSX, XLS y muchos más.

El siguiente código ayuda a convertir archivos de Excel en diferentes formatos usando IronXL.

// Export to many formats with fluent saving
xlsxWorkbook.SaveAs("NewExcelFile.xls");
xlsxWorkbook.SaveAs("NewExcelFile.xlsx");
xlsxWorkbook.SaveAsCsv("NewExcelFile.csv");
xlsxWorkbook.SaveAsJson("NewExcelFile.json");
xlsxWorkbook.SaveAsXml("NewExcelFile.xml");
// Export to many formats with fluent saving
xlsxWorkbook.SaveAs("NewExcelFile.xls");
xlsxWorkbook.SaveAs("NewExcelFile.xlsx");
xlsxWorkbook.SaveAsCsv("NewExcelFile.csv");
xlsxWorkbook.SaveAsJson("NewExcelFile.json");
xlsxWorkbook.SaveAsXml("NewExcelFile.xml");
' Export to many formats with fluent saving
xlsxWorkbook.SaveAs("NewExcelFile.xls")
xlsxWorkbook.SaveAs("NewExcelFile.xlsx")
xlsxWorkbook.SaveAsCsv("NewExcelFile.csv")
xlsxWorkbook.SaveAsJson("NewExcelFile.json")
xlsxWorkbook.SaveAsXml("NewExcelFile.xml")
$vbLabelText   $csharpLabel

En el código anterior, vemos que podemos exportar archivos de Excel muy fácilmente con solo una línea de código. Pero, primero necesitamos abrir o crear el archivo de Excel, y ya hemos visto arriba cómo podemos abrir y crear un archivo de Excel usando IronXL.

6.2 Syncfusion Excel

El framework Syncfusion Excel puede convertir archivos de Excel en formato PDF y JSON. Podemos convertir archivos de Excel a formato JSON sin instalar una biblioteca extra. Aquí está el código para cómo convertir un archivo de Excel abierto a un archivo JSON.

// Saves the workbook to a JSON file, as schema by default
workbook.SaveAsJson("Excel-Workbook-To-JSON-as-schema-default.json");

// Saves the workbook to a JSON file as schema
workbook.SaveAsJson("Excel-Workbook-To-JSON-as-schema.json", true);
// Saves the workbook to a JSON file, as schema by default
workbook.SaveAsJson("Excel-Workbook-To-JSON-as-schema-default.json");

// Saves the workbook to a JSON file as schema
workbook.SaveAsJson("Excel-Workbook-To-JSON-as-schema.json", true);
' Saves the workbook to a JSON file, as schema by default
workbook.SaveAsJson("Excel-Workbook-To-JSON-as-schema-default.json")

' Saves the workbook to a JSON file as schema
workbook.SaveAsJson("Excel-Workbook-To-JSON-as-schema.json", True)
$vbLabelText   $csharpLabel

Para convertir documentos típicos de Excel a archivos PDF, necesitamos instalar una biblioteca extra que proporcionará soporte para la conversión. Excel-a-ODS guarda archivos de Excel en formatos ODS para usar en varias aplicaciones como OpenOffice y Google Sheets. Excel-a-HTML renderiza dinámicamente un libro de trabajo o hoja de cálculo de Excel como un archivo HTML.

7. Protección de archivos de Excel

La protección es la característica más importante de Microsoft Excel. Te da control sobre quién puede editar y abrir archivos. Los archivos de Excel protegidos con contraseña son importantes porque pueden almacenar datos importantes. Echemos un vistazo a cómo podemos proteger nuestros archivos de Excel usando bibliotecas de Excel.

7.1 Hierro XL

Usando IronXL, podemos proteger nuestro archivo de Excel con una sola línea de código. El siguiente código demuestra cómo podemos abrir y proteger un archivo de Excel.

using IronXL;

WorkBook workbook = WorkBook.Load("test.xlsx");
WorkSheet worksheet = workbook.DefaultWorkSheet;

// Protect the worksheet by setting the password to it
// Users will then need to know this password to edit the password-protected Excel file's worksheet in Excel.
worksheet.ProtectSheet("password");
workbook.Save();

// Unprotect the worksheet and remove any password locks 
// It works even if you do not know the password!
worksheet.UnprotectSheet();
workbook.Save();
using IronXL;

WorkBook workbook = WorkBook.Load("test.xlsx");
WorkSheet worksheet = workbook.DefaultWorkSheet;

// Protect the worksheet by setting the password to it
// Users will then need to know this password to edit the password-protected Excel file's worksheet in Excel.
worksheet.ProtectSheet("password");
workbook.Save();

// Unprotect the worksheet and remove any password locks 
// It works even if you do not know the password!
worksheet.UnprotectSheet();
workbook.Save();
Imports IronXL

Private workbook As WorkBook = WorkBook.Load("test.xlsx")
Private worksheet As WorkSheet = workbook.DefaultWorkSheet

' Protect the worksheet by setting the password to it
' Users will then need to know this password to edit the password-protected Excel file's worksheet in Excel.
worksheet.ProtectSheet("password")
workbook.Save()

' Unprotect the worksheet and remove any password locks 
' It works even if you do not know the password!
worksheet.UnprotectSheet()
workbook.Save()
$vbLabelText   $csharpLabel

La función ProtectSheet() permite al usuario encriptar un archivo de Excel. Para desproteger la hoja, podemos usar la función UnprotectSheet() después de cargar el archivo de Excel. Esta función eliminará todas las contraseñas, incluso si no conoces las contraseñas.

7.2 Syncfusion Excel

Podemos proteger archivos de Excel usando el framework Syncfusion Excel. El siguiente código nos permite crear y proteger un archivo de Excel.

private void ProtectWorkbook()
{
    using (ExcelEngine excelEngine = new ExcelEngine())
    {
        // Instantiate the application object
        IApplication application = excelEngine.Excel;

        // Create a workbook
        IWorkbook workbook = application.Workbooks.Create(1);

        // Protect the workbook specifying a password with Boolean attributes for structure and windows protection
        bool isProtectWindow = true;
        bool isProtectContent = true;
        workbook.Protect(isProtectWindow, isProtectContent, "password");

        // Save the Excel file
        workbook.SaveAs(@"d:\test\XlsIOOutput_ProtectedWorkbook.xlsx");
    }
}
private void ProtectWorkbook()
{
    using (ExcelEngine excelEngine = new ExcelEngine())
    {
        // Instantiate the application object
        IApplication application = excelEngine.Excel;

        // Create a workbook
        IWorkbook workbook = application.Workbooks.Create(1);

        // Protect the workbook specifying a password with Boolean attributes for structure and windows protection
        bool isProtectWindow = true;
        bool isProtectContent = true;
        workbook.Protect(isProtectWindow, isProtectContent, "password");

        // Save the Excel file
        workbook.SaveAs(@"d:\test\XlsIOOutput_ProtectedWorkbook.xlsx");
    }
}
Private Sub ProtectWorkbook()
	Using excelEngine As New ExcelEngine()
		' Instantiate the application object
		Dim application As IApplication = excelEngine.Excel

		' Create a workbook
		Dim workbook As IWorkbook = application.Workbooks.Create(1)

		' Protect the workbook specifying a password with Boolean attributes for structure and windows protection
		Dim isProtectWindow As Boolean = True
		Dim isProtectContent As Boolean = True
		workbook.Protect(isProtectWindow, isProtectContent, "password")

		' Save the Excel file
		workbook.SaveAs("d:\test\XlsIOOutput_ProtectedWorkbook.xlsx")
	End Using
End Sub
$vbLabelText   $csharpLabel

Usamos la función Protect() para encriptar el archivo de Excel. Necesitamos pasar tres parámetros a la función si solo necesitamos proteger la hoja, o si también necesitamos proteger el contenido del archivo de Excel. El tercer parámetro será la contraseña que deseas establecer.

8. Licencias

8.1 Hierro XL

IronXL es completamente gratuito para desarrollo. Puedes probar cada aspecto de él para desarrollo. Pero, habrá una marca de agua en la versión gratuita de desarrollo. Puedes probarlo gratis en producción también. Puedes activar el prueba gratuita para producción sin ningún pago. Si eliges comprar IronXL, los planes de precios son los siguientes:

Edición Lite

Puedes elegir la Edición Lite si eres un desarrollador individual y deseas usar IronXL en tu proyecto. Esta será la mejor opción para ti.

IronXL Lite IronXL Lite

Edición profesional

La Edición Profesional es mejor si tienes una empresa con múltiples sucursales en todo el mundo. Esta Edición soporta 10 ubicaciones, 10 desarrolladores y 10 proyectos a la vez.

IronXL Profesional IronXL Profesional

Edición ilimitada

Este plan de precios soporta desarrolladores ilimitados, ubicaciones ilimitadas y proyectos ilimitados de por vida con un solo pago. Es la mejor opción si prefieres usar IronXL en muchos proyectos.

IronXL Ilimitado IronXL Ilimitado

IronXL también soporta la distribución de regalías, y también te ofrece soporte y actualizaciones de productos.

Distribución de Regalías Distribución de Regalías

La página de licencias de IronXL contiene más detalles sobre precios y derechos de uso.

8.2 Biblioteca de Excel de Syncfusion

La librería Syncfusion Excel también ofrece una prueba gratuita. Si deseas comprar Syncfusion Excel, puedes comprarlo por $395 para un equipo de hasta cinco desarrolladores. Syncfusion ofrece licencias adicionales para equipos de 10 o más desarrolladores y licencias especiales ilimitadas para su uso en proyectos individuales o para empresas enteras.

Syncfusion Syncfusion

9. Conclusión

Ambas bibliotecas proporcionan funcionalidades efectivas. Pero, si miramos el panorama general, IronXL es más conveniente y fácil de usar. Tiene funciones pequeñas y fáciles de recordar. Con la ayuda de IronXL, puedes hacer muchas ediciones y formatos con una sola línea de código. El flujo de código es complejo, pero un principiante puede entenderlo muy fácilmente. No necesitas tener conocimiento de, o entender el funcionamiento de IronXL. No hay necesidad de instalar bibliotecas separadas para diferentes plataformas. Instálala una vez, y estás listo para todas las acciones.

Syncfusion Excel tiene muchas características como hemos visto arriba. Podemos hacer muchos formateos y conversiones con la ayuda de Syncfusion Excel. Podemos crear nuevos documentos de Excel, modificar archivos de Excel ya existentes, hacer múltiples formateos y hacer cifrado. Tenemos que instalar una biblioteca separada para realizar las conversiones.

IronXL tiene una variedad de planes de precios. Puedes comprar el plan mejor adaptado a tus propias necesidades. Por ejemplo, si eres el único desarrollador y necesitas IronXL para fines comerciales para un proyecto, puedes activarlo con un pago único que es mucho más bajo que Syncfusion, que requiere que compres una biblioteca por solo un año por varios cientos de dólares, para un solo desarrollador y un solo proyecto. Así que, IronXL es mucho más barato y ofrece opciones mucho mejores que el framework Syncfusion Excel.

En conclusión, IronXL es una mejor elección que el framework Syncfusion Excel. Como hemos visto en los párrafos anteriores, es muy fácil usar IronXL gracias a sus funciones simples, y podemos hacer muchos formateos con una sola línea de código. Pero, en el framework Syncfusion Excel, necesitamos escribir múltiples líneas de código para definir muchos elementos que ya están definidos en IronXL en el backend, y el usuario no necesita pasar su tiempo definiendo múltiples parámetros y variables. Además, IronXL también es más barato y tiene mejores opciones de licencias. Iron Software actualmente tiene una oferta especial por la cual puedes comprar cinco paquetes de software por el precio de solo dos. Esto significa que puedes comprar cinco paquetes de Iron Software a un precio con descuento.

Por favor notaSyncfusion es una marca registrada de su respectivo propietario. Este sitio no está afiliado a, aprobado por, ni patrocinado por Syncfusion. Todos los nombres de producto, logotipos y marcas son propiedad de sus respectivos dueños. Las comparaciones son sólo para fines informativos y reflejan información disponible públicamente al momento de escribir.

Preguntas Frecuentes

¿Cuáles son las principales ventajas de usar IronXL para la manipulación de archivos de Excel?

IronXL proporciona una API simplificada y fácil de usar que permite a los desarrolladores leer, escribir y manipular documentos de Excel fácilmente. Admite múltiples formatos de archivo como XLS, XLSX, CSV y JSON, e incluye funciones para carga de datos, creación de gráficos, manejo de fórmulas y estilo de celdas sin necesidad de tener instalado Microsoft Excel.

¿Cómo puedo convertir archivos de Excel a diferentes formatos en C#?

Puedes usar IronXL para exportar archivos de Excel a varios formatos como CSV, JSON, XML, XLSX y XLS. Esto se puede hacer con un código mínimo, lo que facilita su integración en tus aplicaciones C#.

¿Es necesario tener Excel instalado para usar IronXL?

No, IronXL no requiere que Microsoft Excel esté instalado en tu servidor o estación de trabajo. Proporciona su propia API para manejar tareas de manipulación de archivos de Excel.

¿Cómo se compara la licencia de IronXL con la de Syncfusion Excel?

IronXL ofrece una versión de desarrollo gratuita con marca de agua y varias ediciones de pago para uso comercial, proporcionando un modelo de licencia flexible. En contraste, Syncfusion Excel requiere la compra de una licencia, con precios según el número de desarrolladores y proyectos.

¿Qué hace que IronXL sea una opción preferible para principiantes en comparación con Syncfusion Excel?

IronXL es generalmente más fácil para principiantes debido a su API simple e intuitiva, que permite realizar tareas complejas con un código mínimo. A diferencia de Syncfusion Excel, IronXL no requiere definir múltiples parámetros, lo que lo hace más accesible para desarrolladores nuevos en la manipulación de Excel.

¿Puede IronXL manejar la protección y seguridad de archivos de Excel?

Sí, IronXL puede gestionar la protección de archivos de Excel permitiendo a los usuarios proteger sus documentos con contraseñas y otras características de protección. Esto asegura la integridad y confidencialidad de los datos al compartir archivos de Excel.

¿Por qué deberían los desarrolladores considerar usar IronXL sobre Syncfusion Excel?

Los desarrolladores podrían elegir IronXL sobre Syncfusion Excel por su simplicidad, facilidad de uso, rentabilidad, y conjunto de características robustas que no requieren bibliotecas adicionales para diferentes plataformas. IronXL ofrece un enfoque directo para la manipulación de archivos de Excel, lo que lo hace una elección ideal para los desarrolladores.

¿IronXL admite el manejo de fórmulas en archivos de Excel?

Sí, IronXL admite trabajar con fórmulas de Excel, permitiéndote leer, escribir y evaluar fórmulas dentro de tus archivos de Excel, proporcionando una solución integral para manejar cálculos complejos de manera programática.

Jordi Bardia
Ingeniero de Software
Jordi es más competente en Python, C# y C++. Cuando no está aprovechando sus habilidades en Iron Software, está programando juegos. Compartiendo responsabilidades para pruebas de productos, desarrollo de productos e investigación, Jordi agrega un valor inmenso a la mejora continua del producto. La experiencia variada lo mantiene ...
Leer más