Una Comparación Entre OpenpyXL Python e IronXL para Python
En este artículo, hablaremos de dos bibliotecas de Python ampliamente utilizadas para gestionar archivos de hojas de cálculo Excel: IronXL y OpenPyXL. Estas bibliotecas son importantes para los desarrolladores de Python que necesitan manipular, analizar o crear documentos de archivos Excel. Cada biblioteca proporciona características únicas para facilitar el manejo de archivos Excel de manera más efectiva y eficiente.
IronXL y OpenPyXL ofrecen a los desarrolladores la capacidad de automatizar operaciones de hojas de cálculo, editar celdas de hojas Excel y extraer datos de muestra. También soportan características avanzadas como la creación de fórmulas, el estilo de celdas y el manejo de grandes conjuntos de datos de manera fluida. Esto asegura que las aplicaciones puedan gestionar archivos Excel de manera eficiente en varios entornos sin comprometer el rendimiento o la compatibilidad.
En esta comparación, exploraremos las características únicas de cada biblioteca y cómo funcionan. También cubriremos los detalles de sus licencias. Veamos las diferencias y capacidades de IronXL y OpenPyXL, centrándonos en información clara y útil para los desarrolladores.
1. Biblioteca OpenPyXL
OpenPyXL es una biblioteca de Python diseñada para manejar archivos Excel en el formato XLSX. La biblioteca permite a los desarrolladores leer, escribir y modificar archivos Excel. El módulo OpenPyXL soporta una variedad de funcionalidades de Excel, incluyendo manipulación de datos, formateo y características avanzadas como gráficos y tablas dinámicas.
1.1 Características principales de OpenPyXL
1.1.1 Gestión de hojas de cálculo
OpenPyXL sobresale en la creación y edición de libros de trabajo. Te permite comenzar con un libro de trabajo en blanco o modificar uno existente, agregar o eliminar hojas, y navegar fácilmente a través de las hojas. Esto lo hace perfecto para tareas que van desde la generación de informes hasta la automatización de entradas de datos.
1.1.2 Manipulación de datos
Esta biblioteca soporta capacidades avanzadas de manejo de datos, como añadir filas, insertar fórmulas y aplicar estilos a la hoja activa. Puedes manipular grandes conjuntos de datos estableciendo valores de celdas programáticamente, lo que simplifica tareas como el análisis de datos y la generación de informes.
1.1.3 Estilo y formato
Con OpenPyXL, puedes aplicar formato a las celdas como fuentes, colores y bordes. También soporta formato condicional y configuración de propiedades de celdas como alineación, que son esenciales para crear informes Excel con un estilo profesional.
1.1.4 Gráficos e imágenes
OpenPyXL puede agregar elementos gráficos a las hojas de cálculo. Puedes insertar gráficos para visualizar datos e incluso agregar imágenes para mejorar la presentación de la información. Esta característica es particularmente útil para crear paneles de control e informes complejos.
1.1.5 Integración de fórmulas y funciones
La biblioteca permite la integración de fórmulas de Excel en celdas, permitiendo cálculos automatizados dentro de las hojas de cálculo. También soporta la creación de rangos nombrados, que pueden ser muy útiles para organizar datos y crear hojas más legibles y mantenibles.
1.1.6 Validación y automatización de datos
OpenPyXL proporciona herramientas para validación y clasificación de datos, que son cruciales para mantener la integridad de los datos y organizar la información efectivamente. También ofrece características para filtrar datos, facilitando la gestión de grandes volúmenes de datos dentro de archivos Excel.
1.1.7 Código abierto
Como una biblioteca de código abierto, OpenPyXL se beneficia de las contribuciones continuas de una vibrante comunidad, asegurando que se mantenga relevante y rica en características. Esta implicación comunitaria proporciona un vasto conjunto de recursos y soporte para los desarrolladores que utilizan la biblioteca.
2. Biblioteca IronXL
IronXL es una robusta biblioteca de Python diseñada para manipular archivos Excel sin necesidad de Microsoft Excel. Es apreciada por su simplicidad y efectividad en el manejo de varias tareas de Excel directamente dentro de entornos Python.
2.1 Características principales de IronXL
2.1.1 Gestión de libros de trabajo
IronXL simplifica la creación, carga y guardado de formatos Excel como XLS, XLSX y CSV, entre otros. Asegura compatibilidad con diferentes versiones de Excel y proporciona una funcionalidad completa para gestionar datos Excel programáticamente.
2.1.2 Manipulación de datos
Con IronXL, puedes clasificar datos de manera eficiente, gestionar filas y columnas, y personalizar el formato de las celdas. Esto incluye configurar tipos de datos, fórmulas e incluso implementar funciones de Excel dentro de las celdas.
2.1.3 Formato avanzado
IronXL permite opciones de estilos extensivas para celdas, incluyendo la configuración de fuentes, bordes y colores de fondo. Soporta características avanzadas de Excel como formato condicional y opciones de impresión para hojas de trabajo, mejorando la legibilidad y presentación de tus informes Excel.
2.1.4 Características de seguridad
La biblioteca soporta la edición de metadatos, gestión de permisos y protección con contraseña de archivos, asegurando que los datos sensibles estén salvaguardados.
2.1.5 Compatibilidad multiplataforma
IronXL está diseñado para funcionar en múltiples sistemas operativos, incluyendo Windows, macOS y Linux, asegurando que los desarrolladores puedan desplegar sus aplicaciones en varias plataformas sin problemas de compatibilidad.
2.1.6 Operaciones con rangos de celdas y hojas
IronXL ofrece funciones robustas para manejar rangos de hojas y celdas individuales. Puedes fácilmente combinar, copiar y manipular rangos de celdas. Esta capacidad simplifica la gestión de configuraciones de datos complejas.
2.1.7 Integración con sistemas de datos
IronXL se integra fácilmente con bases de datos y fuentes de datos. Soporta la importación y exportación de datos hacia y desde archivos Excel. Esta característica es esencial para aplicaciones que requieren reportes de datos dinámicos y análisis.
3. Configurar el proyecto en Visual Studio Code
Para comenzar a probar las bibliotecas IronXL y OpenPyXL, necesitamos configurar un proyecto en Visual Studio Code, específicamente adaptado para el desarrollo en Python.
3.1 Requisitos previos
Antes de comenzar, asegúrate de que Visual Studio Code esté instalado en tu computadora. También es necesario tener Python instalado, junto con la extensión de Python para Visual Studio Code. Esta extensión se puede agregar directamente desde la vista de Extensiones en Visual Studio Code.
3.2 Configuración del proyecto
Comienza creando una nueva carpeta en tu sistema, la cual servirá como espacio de trabajo para tu proyecto. Puedes hacerlo fácilmente usando la opción Abrir carpeta del menú Archivo de VS Code.
3.3 Configuración del entorno
Dentro de Visual Studio Code, es aconsejable configurar un entorno virtual para gestionar las dependencias de manera limpia. Puedes hacerlo usando el terminal integrado en Visual Studio Code. Visual Studio Code también proporciona una interfaz en la extensión de Python para simplificar este proceso. A través del comando de la paleta de la extensión de Python, puedes crear y activar un entorno virtual sin tener que escribir los comandos manualmente.
Presiona Ctrl+Shift+P en VS Code, busca "Python: Create Environment", y haz clic en él.

Selecciona un tipo de entorno de la lista desplegable. En nuestro caso, será ".venv":

Después de eso, selecciona la ruta del intérprete de Python:

Creará el entorno virtual de Python dentro de la carpeta.

4. Instalar la biblioteca IronXL para Python
Instalar la biblioteca IronXL en Visual Studio Code es un proceso sencillo. IronXL es particularmente útil ya que no requiere que Microsoft Office esté instalado, operando en su lugar sobre la plataforma .NET.
4.1 Requisitos previos
Antes de instalar IronXL, asegúrate de que tu entorno ya está configurado con Python y Visual Studio Code. Es importante tener el runtime .NET 6.0 instalado en tu máquina ya que IronXL depende de tecnologías .NET para funcionar. Para sistemas que no estén ya equipados con .NET, como Linux o macOS, es posible que necesites descargarlo desde el sitio oficial de .NET.
4.2 Pasos de instalación
Para instalar IronXL, utiliza el gestor de paquetes pip, que simplifica la instalación de bibliotecas de Python. Sigue estos pasos en el terminal dentro de Visual Studio Code:
- Abra la terminal: acceda a la terminal a través de Visual Studio Code usando el acceso directo Ctrl+` o navegando a Terminal > Nueva terminal desde el menú superior.
Ejecute el comando Pip Install: En la terminal, escriba el siguiente comando y presione Enter:
pip install IronXL
El comando
pip installanterior descargará e instalará la biblioteca IronXL junto con las dependencias necesarias para su operación.

Confirmar la instalación: una vez completado el proceso de instalación, puede verificar que IronXL esté instalado correctamente intentando importarlo en un nuevo script de Python:
from ironxl import *from ironxl import *PYTHONSi no aparecen errores, la biblioteca está instalada correctamente y lista para su uso.
4.3 Consideraciones adicionales
Mientras instalas IronXL, si encuentras problemas relacionados con dependencias o compatibilidad con .NET, asegúrate de que se cumplan todos los requisitos del sistema según lo especificado por la documentación de IronXL. Puede ser necesario ajustar las rutas del sistema o instalar bibliotecas de soporte adicionales dependiendo de tu sistema operativo.
Siguiendo estas instrucciones, IronXL se instalará en tu entorno Python en Visual Studio Code, estableciendo el escenario para una mejora en la manipulación de archivos Excel y capacidades de procesamiento de datos dentro de tus proyectos de Python.
5. Instalar la biblioteca de Python OpenPyXL
5.1 Instalación de OpenPyXL
La instalación de OpenPyXL puede realizarse usando pip, el instalador de paquetes de Python. Se recomienda instalar esta biblioteca dentro de un entorno virtual para evitar conflictos con otros proyectos Python o paquetes del sistema.
Usar pip para instalar OpenPyXL: Abra la interfaz de línea de comandos (CLI) en Visual Studio Code o en su entorno preferido donde esté activo su entorno de Python. Introduzca el siguiente comando:
pip install openpyxlpip install openpyxlSHELLEste comando descarga e instala la biblioteca OpenPyXL junto con las dependencias necesarias.

Dependencias opcionales: para un uso avanzado, como incluir imágenes o trabajar con archivos grandes, OpenPyXL sugiere instalar bibliotecas adicionales como lxml y Pillow . Para instalarlas, utiliza:
pip install lxml pillowpip install lxml pillowSHELL
5.2 Verificación de la instalación
Después de la instalación, puedes verificar que OpenPyXL está instalado correctamente intentando importar el módulo OpenPyXL en tu script de Python:
from openpyxl import Workbook
wb = Workbook()from openpyxl import Workbook
wb = Workbook()Si el código anterior se ejecuta sin errores, OpenpyXL está listo para ser usado en tus proyectos. Siguiendo estos pasos, puedes configurar fácilmente OpenPyXL y comenzar a automatizar operaciones de archivos Excel en tus aplicaciones Python.
6. Comparación de funciones avanzadas en IronXL y OpenPyXL
6.1 Funciones avanzadas de IronXL
IronXL es una completa biblioteca de Python diseñada para mejorar la manipulación de archivos Excel. Esta herramienta simplifica el proceso de crear, editar y gestionar archivos Excel dentro de aplicaciones Python, proporcionando una variedad de características que abarcan desde operaciones básicas de hojas de cálculo hasta manejo avanzado de datos.
6.1.1 Importación y exportación de datos
IronXL sobresale en el manejo de diferentes formatos de Excel, incluyendo XLS, XLSX y CSV. Los usuarios pueden fácilmente importar datos de muestra de estos formatos o exportar hojas de trabajo a ellos, facilitando soluciones versátiles de intercambio de datos y generación de informes. También puedes seleccionar la hoja activa para trabajar en una hoja específica.
from ironxl import *
workbook = WorkBook.Load("sample.csv")
workbook2 = WorkBook.Load("sample.xlsx")
workbook3 = WorkBook.Load("sample.xls")from ironxl import *
workbook = WorkBook.Load("sample.csv")
workbook2 = WorkBook.Load("sample.xlsx")
workbook3 = WorkBook.Load("sample.xls")6.1.2 Soporte de fórmulas y cálculos
La biblioteca soporta fórmulas de Excel, permitiendo que cálculos se realicen dentro de la hoja de Excel. Cada vez que se edita una hoja, las fórmulas se recalculan automáticamente, asegurando consistencia y precisión de los datos.
from ironxl import *
# Create a new Excel workbook
new_workbook = WorkBook()
# Add a worksheet to the workbook
new_worksheet = new_workbook.CreateWorkSheet("NewSheet")
# Set new formulas with different logic
new_worksheet["A1"].Formula = "Average(D1:D5)"
new_worksheet["D1"] = 10
new_worksheet["D2"] = 20
new_worksheet["D3"] = 30
new_worksheet["D4"] = 40
new_worksheet["D5"] = 50
new_worksheet["B1"].Formula = "=D3*D4"
new_worksheet["C1"].Formula = "Min(D1:D5)"
# Force recalculate all formulas in the workbook
new_workbook.EvaluateAll()
# Get the calculated values for each formula
average_value = new_worksheet["A1"].ToArray()[0].FormattedCellValue
product_value = new_worksheet["B1"].ToArray()[0].FormattedCellValue
min_value = new_worksheet["C1"].ToArray()[0].FormattedCellValue
# Save the new workbook to a file with updated formulas and calculated values
new_workbook.SaveAs("sample.xlsx")from ironxl import *
# Create a new Excel workbook
new_workbook = WorkBook()
# Add a worksheet to the workbook
new_worksheet = new_workbook.CreateWorkSheet("NewSheet")
# Set new formulas with different logic
new_worksheet["A1"].Formula = "Average(D1:D5)"
new_worksheet["D1"] = 10
new_worksheet["D2"] = 20
new_worksheet["D3"] = 30
new_worksheet["D4"] = 40
new_worksheet["D5"] = 50
new_worksheet["B1"].Formula = "=D3*D4"
new_worksheet["C1"].Formula = "Min(D1:D5)"
# Force recalculate all formulas in the workbook
new_workbook.EvaluateAll()
# Get the calculated values for each formula
average_value = new_worksheet["A1"].ToArray()[0].FormattedCellValue
product_value = new_worksheet["B1"].ToArray()[0].FormattedCellValue
min_value = new_worksheet["C1"].ToArray()[0].FormattedCellValue
# Save the new workbook to a file with updated formulas and calculated values
new_workbook.SaveAs("sample.xlsx")
6.1.3 Formato de celda avanzado
IronXL ofrece extensas opciones de formato de celdas. Los usuarios pueden ajustar fuentes, tamaños, fondos, bordes y alineación directamente en una hoja de cálculo Excel a través de código. Esta característica ayuda a preparar presentaciones de datos e informes que requieren guías estilísticas específicas.
from ironxl import *
License.LicenseKey = "License Code";
workbook = WorkBook()
new_worksheet = workbook.CreateWorkSheet("FinanceData")
selected_range = new_worksheet["B2:B6"]
new_worksheet["B2"].Value = "Revenue"
new_worksheet["B3"].Value = 150000
new_worksheet["B4"].Value = 200000
new_worksheet["B5"].Value = 180000
new_worksheet["B6"].Value = 220000
selected_range.Style.SetBackgroundColor("#4CAF50")
selected_range.Style.Font.Underline = FontUnderlineType.Single
selected_range.Style.Font.Strikeout = False
selected_range.Style.Font.Bold = True
selected_range.Style.Font.Italic = False
selected_range.Style.TopBorder.Type = BorderType.Thin
selected_range.Style.BottomBorder.Type = BorderType.Thin
selected_range.Style.LeftBorder.Type = BorderType.Thin
selected_range.Style.RightBorder.Type = BorderType.Thin
selected_range.Style.TopBorder.SetColor("#000000")
selected_range.Style.BottomBorder.SetColor("#000000")
selected_range.Style.LeftBorder.SetColor("#000000")
selected_range.Style.RightBorder.SetColor("#000000")
selected_range.Style.VerticalAlignment = VerticalAlignment.Center
selected_range.Style.HorizontalAlignment = HorizontalAlignment.Center
selected_range.Style.FillPattern = FillPattern.LessDots
selected_range.Style.Indention = 0
selected_range.Style.WrapText = True
# Save the new workbook to a file with updated formulas and calculated values
workbook.SaveAs("styled.xlsx")from ironxl import *
License.LicenseKey = "License Code";
workbook = WorkBook()
new_worksheet = workbook.CreateWorkSheet("FinanceData")
selected_range = new_worksheet["B2:B6"]
new_worksheet["B2"].Value = "Revenue"
new_worksheet["B3"].Value = 150000
new_worksheet["B4"].Value = 200000
new_worksheet["B5"].Value = 180000
new_worksheet["B6"].Value = 220000
selected_range.Style.SetBackgroundColor("#4CAF50")
selected_range.Style.Font.Underline = FontUnderlineType.Single
selected_range.Style.Font.Strikeout = False
selected_range.Style.Font.Bold = True
selected_range.Style.Font.Italic = False
selected_range.Style.TopBorder.Type = BorderType.Thin
selected_range.Style.BottomBorder.Type = BorderType.Thin
selected_range.Style.LeftBorder.Type = BorderType.Thin
selected_range.Style.RightBorder.Type = BorderType.Thin
selected_range.Style.TopBorder.SetColor("#000000")
selected_range.Style.BottomBorder.SetColor("#000000")
selected_range.Style.LeftBorder.SetColor("#000000")
selected_range.Style.RightBorder.SetColor("#000000")
selected_range.Style.VerticalAlignment = VerticalAlignment.Center
selected_range.Style.HorizontalAlignment = HorizontalAlignment.Center
selected_range.Style.FillPattern = FillPattern.LessDots
selected_range.Style.Indention = 0
selected_range.Style.WrapText = True
# Save the new workbook to a file with updated formulas and calculated values
workbook.SaveAs("styled.xlsx")
6.1.4 Validación y ordenación de datos
Para mejorar la integridad de los datos, IronXL incluye características de validación de datos. También proporciona capacidades robustas de clasificación para rangos, columnas y filas, facilitando la organización y análisis de grandes conjuntos de datos.
6.1.5 Seguridad del documento
Las características de seguridad en IronXL incluyen la capacidad de encriptar y desencriptar archivos Excel. Esto asegura que información sensible esté protegida y solo accesible para usuarios autorizados.
from ironxl import *
# Load a different Excel workbook
workbook = WorkBook.Load("data_file.xlsx")
worksheet = workbook.DefaultWorkSheet
# Open a different protected spreadsheet file
protected_workbook = WorkBook.Load("protected_data.xlsx", "ExcelSecure")
# Apply encryption to the spreadsheet file
workbook.Encrypt("ExcelSecure")
# Clear any existing password protection
workbook.Password = None
# Save changes to the workbook
workbook.Save()
worksheet.ProtectSheet("SheetSecure")
worksheet.UnprotectSheet()
workbook.Save()from ironxl import *
# Load a different Excel workbook
workbook = WorkBook.Load("data_file.xlsx")
worksheet = workbook.DefaultWorkSheet
# Open a different protected spreadsheet file
protected_workbook = WorkBook.Load("protected_data.xlsx", "ExcelSecure")
# Apply encryption to the spreadsheet file
workbook.Encrypt("ExcelSecure")
# Clear any existing password protection
workbook.Password = None
# Save changes to the workbook
workbook.Save()
worksheet.ProtectSheet("SheetSecure")
worksheet.UnprotectSheet()
workbook.Save()
6.1.6 Capacidades de conversión
IronXL no se limita al manejo de archivos Excel como archivos XLSX, XLSM, XLTX, XLTM. También puede convertir documentos Excel en formatos JSON, XML, HTML o binarios, ampliando las oportunidades de utilización de datos en diferentes plataformas y entornos de programación.
from ironxl import *
workbook = WorkBook.Create()
worksheet = workbook.CreateWorkSheet("Sheet1")
worksheet["B1"].Value = "Sample Text"
worksheet["B2"].Style.BottomBorder.SetColor("#0077CC")
workbook.SaveAs("output.xls")
workbook.SaveAs("output.xlsx")
workbook.SaveAs("output.tsv")
workbook.SaveAsCsv("output.csv")
workbook.SaveAsJson("output.json")
workbook.SaveAsXml("output.xml")
workbook.ExportToHtml("output.html")from ironxl import *
workbook = WorkBook.Create()
worksheet = workbook.CreateWorkSheet("Sheet1")
worksheet["B1"].Value = "Sample Text"
worksheet["B2"].Style.BottomBorder.SetColor("#0077CC")
workbook.SaveAs("output.xls")
workbook.SaveAs("output.xlsx")
workbook.SaveAs("output.tsv")
workbook.SaveAsCsv("output.csv")
workbook.SaveAsJson("output.json")
workbook.SaveAsXml("output.xml")
workbook.ExportToHtml("output.html")6.1.7 Gestión de hojas y libros de trabajo
La biblioteca simplifica la gestión de libros permitiendo a los usuarios crear, cargar y manipular libros de trabajo enteros o hojas de trabajo individuales. Esto incluye agregar o eliminar hojas, así como configurar la visibilidad de las hojas y los ajustes de impresión.
from ironxl import *
# Load the Excel workbook
workbook = WorkBook.Load("sample.xlsx")
# Create a new worksheet
new_worksheet = workbook.CreateWorkSheet("NewSheet")
# Fill data into the new worksheet
for i in range(1, 21):
new_worksheet[f"A{i}"].Value = f"Data {i}"
new_worksheet[f"B{i}"].Value = 21 - i
new_worksheet[f"C{i}"].Value = i % 5
new_worksheet[f"D{i}"].Value = (i * 3) % 7
# Select a range in the new worksheet
selected_range = new_worksheet["A1:D20"]
# Select column B in the new worksheet
column = new_worksheet.GetColumn(1)
# Sort the range in ascending order based on column A
selected_range.SortAscending()
# Sort the range by column C in ascending order
selected_range.SortByColumn("C", SortOrder.Ascending)
# Sort column B in descending order
column.SortDescending()
# Save the changes
workbook.SaveAs("sortedExcelRange.xlsx")from ironxl import *
# Load the Excel workbook
workbook = WorkBook.Load("sample.xlsx")
# Create a new worksheet
new_worksheet = workbook.CreateWorkSheet("NewSheet")
# Fill data into the new worksheet
for i in range(1, 21):
new_worksheet[f"A{i}"].Value = f"Data {i}"
new_worksheet[f"B{i}"].Value = 21 - i
new_worksheet[f"C{i}"].Value = i % 5
new_worksheet[f"D{i}"].Value = (i * 3) % 7
# Select a range in the new worksheet
selected_range = new_worksheet["A1:D20"]
# Select column B in the new worksheet
column = new_worksheet.GetColumn(1)
# Sort the range in ascending order based on column A
selected_range.SortAscending()
# Sort the range by column C in ascending order
selected_range.SortByColumn("C", SortOrder.Ascending)
# Sort column B in descending order
column.SortDescending()
# Save the changes
workbook.SaveAs("sortedExcelRange.xlsx")
6.1.8 Insertar nuevas filas y columnas
IronXL permite a los usuarios insertar dinámicamente nuevas filas y columnas en hojas de cálculo Excel existentes. Esta característica es particularmente útil para modificar estructuras de datos en respuesta a necesidades cambiantes de datos sin interrumpir el diseño general de la hoja de cálculo.
# Add a row before second row
worksheet.InsertRow(1)
# Insert multiple rows before 5th Row
worksheet.InsertRows(4, 4)
# Add a column before column C
worksheet.InsertColumn(2)
# Insert multiple columns before column B
worksheet.InsertColumns(1, 3)# Add a row before second row
worksheet.InsertRow(1)
# Insert multiple rows before 5th Row
worksheet.InsertRows(4, 4)
# Add a column before column C
worksheet.InsertColumn(2)
# Insert multiple columns before column B
worksheet.InsertColumns(1, 3)6.1.9 Agrupar y desagrupar filas y columnas
Con IronXL, los usuarios pueden agrupar o desagrupar filas y columnas. Esta funcionalidad mejora la organización de datos, permitiendo una navegación y gestión más fácil de conjuntos de datos complejos al colapsar y expandir grupos de datos según sea necesario.
6.1.10 Repetir filas y columnas de Excel
IronXL soporta la repetición de filas y columnas a través de múltiples páginas de un libro. Esto es útil para crear encabezados o pies de página que deben aparecer en cada página impresa de un documento Excel, asegurando consistencia en la presentación y legibilidad.
# Configure rows 2 to 5 to repeat at the top of each printed page
worksheet.SetRepeatingRows(1, 4)
# Configure columns D to F to repeat on the left side of each printed page
worksheet.SetRepeatingColumns(3, 5)
# Insert a page break after column J so that columns A-J appear on the first printed page
worksheet.SetColumnBreak(9)# Configure rows 2 to 5 to repeat at the top of each printed page
worksheet.SetRepeatingRows(1, 4)
# Configure columns D to F to repeat on the left side of each printed page
worksheet.SetRepeatingColumns(3, 5)
# Insert a page break after column J so that columns A-J appear on the first printed page
worksheet.SetColumnBreak(9)6.1.11 Copiar hojas de cálculo de Excel
Los usuarios pueden duplicar hojas de trabajo existentes dentro del mismo libro de trabajo usando IronXL. Esta característica ahorra tiempo cuando se crean múltiples hojas que comparten un formato común o cuando se realizan copias de seguridad de datos importantes. Es muy útil para propósitos de copia de datos.
# Duplicate the worksheet to the same workbook
worksheet.CopySheet("Copied Sheet")
# Duplicate the worksheet to another workbook with the specified name
worksheet.CopyTo(second_book, "Copied Sheet")# Duplicate the worksheet to the same workbook
worksheet.CopySheet("Copied Sheet")
# Duplicate the worksheet to another workbook with the specified name
worksheet.CopyTo(second_book, "Copied Sheet")6.1.12 Agregar, extraer y eliminar imágenes de la hoja de trabajo
IronXL proporciona la capacidad de agregar imágenes a hojas de trabajo, extraer imágenes de ellas o eliminar imágenes. Esto mejora el atractivo visual de las hojas de cálculo y es útil para informes que incluyen datos gráficos, logotipos o imágenes instructivas.
6.2 Características avanzadas de OpenPyXL
6.2.1 Formato condicional
OpenPyXL permite el formato condicional, permitiendo cambiar el estilo de las celdas basándose en los datos que contienen. Esto puede incluir establecer colores basados en valores numéricos o aplicar diferentes fuentes y estilos basados en condiciones específicas, mejorando la presentación visual de los datos.
from openpyxl import Workbook
from openpyxl.formatting.rule import ColorScaleRule
wb = Workbook()
ws = wb.active
color_scale = ColorScaleRule(start_type='num', start_value=10, start_color='FF0000',
end_type='num', end_value=20, end_color='00FF00')
ws.conditional_formatting.add('A1:A10', color_scale)
wb.save('conditional_formatting.xlsx')from openpyxl import Workbook
from openpyxl.formatting.rule import ColorScaleRule
wb = Workbook()
ws = wb.active
color_scale = ColorScaleRule(start_type='num', start_value=10, start_color='FF0000',
end_type='num', end_value=20, end_color='00FF00')
ws.conditional_formatting.add('A1:A10', color_scale)
wb.save('conditional_formatting.xlsx')6.2.2 Validación de datos
Con OpenPyXL, puedes implementar validación de datos para controlar el tipo de datos ingresados en las celdas. Esto incluye configurar listas desplegables, restringir entradas a un cierto rango de fechas o números, y generar mensajes de error para entradas no válidas, lo que ayuda a mantener la integridad de los datos.
from openpyxl import Workbook
from openpyxl.worksheet.datavalidation import DataValidation
wb = Workbook()
ws = wb.active
dv = DataValidation(type="list", formula1='"Item1,Item2,Item3"', allow_blank=True)
ws.add_data_validation(dv)
dv.add('A1')
ws['A1'] = 'Item1'
wb.save('data_validation.xlsx')from openpyxl import Workbook
from openpyxl.worksheet.datavalidation import DataValidation
wb = Workbook()
ws = wb.active
dv = DataValidation(type="list", formula1='"Item1,Item2,Item3"', allow_blank=True)
ws.add_data_validation(dv)
dv.add('A1')
ws['A1'] = 'Item1'
wb.save('data_validation.xlsx')
6.2.3 Gráficos
La biblioteca soporta la creación y personalización de varios tipos de gráficos como gráfico de líneas, barras, pastel y diagramas de dispersión. Esta característica permite la visualización de datos directamente dentro de las hojas de Excel, facilitando un mejor análisis y reporte de datos. Denotamos la fila de diagramas y seleccionamos la referencia de valores a mostrar en el gráfico.
from openpyxl import Workbook
from openpyxl.chart import BarChart, Reference
wb = Workbook()
ws = wb.active
for i in range(10):
ws.append([i])
values = Reference(ws, min_col=1, min_row=1, max_col=1, max_row=10)
chart = BarChart()
chart.add_data(values)
ws.add_chart(chart, "E5")
wb.save("chart.xlsx")from openpyxl import Workbook
from openpyxl.chart import BarChart, Reference
wb = Workbook()
ws = wb.active
for i in range(10):
ws.append([i])
values = Reference(ws, min_col=1, min_row=1, max_col=1, max_row=10)
chart = BarChart()
chart.add_data(values)
ws.add_chart(chart, "E5")
wb.save("chart.xlsx")
6.2.4 Fusionar y separar celdas
OpenPyXL brinda la capacidad de fusionar múltiples celdas para crear una sola celda más grande, a menudo útil para formatear títulos u organizar datos. También permite que estas celdas sean separadas o divididas de nuevo en celdas individuales si es necesario.
6.2.5 Lectura y escritura de comentarios
Puedes leer y escribir comentarios en las celdas, permitiendo incluir notas o instrucciones adicionales dentro del archivo de Excel. Esta característica es particularmente útil para proyectos colaborativos donde se pueden necesitar compartir notas y directrices entre usuarios.
from openpyxl import Workbook
from openpyxl.comments import Comment
wb = Workbook()
ws = wb.active
comment = Comment(text="This is a comment", author="Author")
ws['A1'].comment = comment
wb.save('comments.xlsx')from openpyxl import Workbook
from openpyxl.comments import Comment
wb = Workbook()
ws = wb.active
comment = Comment(text="This is a comment", author="Author")
ws['A1'].comment = comment
wb.save('comments.xlsx')6.2.6 Tablas dinámicas
La biblioteca ofrece la capacidad de crear tablas dinámicas a partir de datos dentro de tus hojas de trabajo. Esta poderosa herramienta ayuda a resumir, analizar, explorar y presentar tus datos de manera integral, facilitando sacar conclusiones y tomar decisiones informadas basadas en grandes conjuntos de datos.
7. Documentación y soporte
7.1 Documentación y soporte de IronXL para Python
Documentación: IronXL proporciona amplia documentación para desarrolladores de Python. Cubre una amplia gama de temas, incluyendo cómo leer, escribir y editar documentos de Excel, gestionar libros de trabajo, estilizar celdas y clasificar datos programáticamente. La documentación está diseñada para ser directa, complementada con numerosos ejemplos de código para ayudar a los desarrolladores a integrar rápidamente funcionalidades de IronXL en sus aplicaciones.
Soporte: IronXL ofrece fuertes opciones de soporte. Los desarrolladores pueden acceder a soporte a través de una sección completa de FAQ, documentación detallada en línea y asistencia directa por correo electrónico. Para consultas más complejas o asistencia inmediata, hay una opción para contactar directamente a su equipo de ingeniería.
7.2 Documentación y soporte de OpenPyXL
Documentación: La documentación de OpenPyXL es completa y bien organizada, ofreciendo a los desarrolladores guías sobre todo, desde cómo empezar hasta características avanzadas como gráficos, validación de datos con mensajes de error y formato condicional. La documentación incluye explicaciones detalladas y fragmentos de código, que son útiles tanto para usuarios nuevos como experimentados.
Soporte: OpenPyXL proporciona soporte principalmente a través de foros comunitarios y rastreadores de problemas en sus repositorios oficiales. Los desarrolladores pueden publicar problemas y contribuir a la biblioteca en GitHub, lo que lo convierte en una herramienta colaborativa y en constante evolución.
8. Información de la licencia
8.1 Licencia IronXL
IronXL ofrece varias opciones de licencia perpetua adaptadas a diferentes necesidades de proyectos, asegurando que los desarrolladores puedan usar la biblioteca en varios entornos sin costos continuos.
- Licencia Lite: Con un precio de $799, esta opción es adecuada para 1 desarrollador, 1 ubicación y 1 proyecto. Incluye soporte por correo electrónico.
- Licencia Plus: Esta opción cuesta $1,499 y amplía la cobertura a 3 desarrolladores, 3 ubicaciones y 3 proyectos. Incluye soporte por correo electrónico, soporte por chat 24/7 y soporte telefónico.
- Licencia Profesional: A $2,999, este es el paquete más completo, soportando 10 desarrolladores, 10 ubicaciones y 10 proyectos. Ofrece las mismas opciones de soporte que la licencia Plus, junto con soporte de compartir pantalla para asistencia en profundidad.
Opciones adicionales incluyen:
- Distribución sin Regalías: Requerido para distribuir IronXL dentro de productos de software empaquetados, SaaS y aplicaciones OEM. Esto no está disponible para la licencia Lite y debe comprarse con las licencias Plus o Profesional.
- Soporte y Actualizaciones de Producto Extendidos: Los desarrolladores pueden elegir soporte y actualizaciones continuas con una opción gratuita de 1 año o un paquete de 5 años por $499. Esto incluye actualizaciones de funciones de seguridad y soporte directo del equipo de ingeniería.
Cada licencia también incluye una garantía de devolución del dinero de 30 días, permitiendo a los desarrolladores probar IronXL sin riesgo. Estos términos de licencia hacen de IronXL una opción flexible para proyectos de varios alcances y tamaños, proporcionando caminos claros para la implementación en diferentes entornos profesionales.
8.2 Licencia OpenPyXL
OpenPyXL se distribuye bajo la licencia MIT, que es una licencia de software libre permisiva. Esto significa que permite una considerable libertad de uso tanto para software de código abierto como propietario. La licencia MIT permite la reutilización dentro de software propietario siempre y cuando todas las copias del software licenciado incluyan una copia de los términos de la licencia MIT y la aviso de derechos de autor.
9. Conclusión

En nuestra revisión de IronXL y OpenPyXL, hemos analizado sus características, usabilidad, opciones de soporte y licenciamiento. Ambas bibliotecas son excelentes para gestionar archivos Excel, pero atienden a diferentes necesidades.
IronXL destaca debido a sus extensas características que permiten manipulaciones complejas de Excel sin necesidad de Microsoft Office. Ofrece documentación detallada y soporte técnico fuerte, lo que lo convierte en una opción confiable para proyectos más grandes o empresas. Los científicos de datos usan IronXL para múltiples propósitos como copia de datos, minería de datos, análisis de datos y muchas otras tareas. Las licencias de IronXL comienzan en $799, pero incluye una prueba gratuita. Esta prueba permite a los desarrolladores probar completamente las capacidades de IronXL antes de realizar una compra, lo que es una gran ventaja para cualquier proyecto serio.
OpenPyXL también es poderoso, especialmente con sus características avanzadas de Excel, como gráficos como gráficos de líneas y formato condicional. Está disponible bajo la licencia MIT, que ofrece flexibilidad tanto para uso de código abierto como comercial. Su soporte está impulsado por la comunidad, lo cual es genial, pero no tiene el soporte estructurado que IronXL proporciona.
Si tu proyecto necesita características de alto nivel junto con soporte profesional y continuo, IronXL es la mejor opción. Puede costar inicialmente, pero la inversión vale la pena por los beneficios y seguridad que ofrece, especialmente para proyectos complejos o a largo plazo.
Preguntas Frecuentes
¿Cuáles son las funciones principales de IronXL y OpenPyXL?
IronXL y OpenPyXL están diseñados para gestionar archivos de hojas de cálculo Excel, permitiendo a los desarrolladores realizar tareas como leer, escribir y modificar documentos Excel. Soportan funcionalidades avanzadas como la creación de fórmulas, el estilo de celdas y el manejo de conjuntos de datos extensos.
¿Cómo puedo manipular archivos Excel sin Microsoft Excel?
IronXL te permite manipular archivos Excel sin necesidad de tener instalado Microsoft Excel. Funciona independientemente en el marco .NET, proporcionando capacidades robustas de manipulación de archivos Excel en múltiples plataformas.
¿Cuáles son los beneficios de usar IronXL para la manipulación de archivos de Excel?
IronXL ofrece beneficios como soporte multiplataforma, formato avanzado de celdas, validación de datos, seguridad de documentos y capacidades de conversión a varios formatos como JSON, XML y HTML. Es adecuado para proyectos complejos que requieren características completas y soporte profesional.
¿Puede OpenPyXL soportar la creación de gráficos y tablas dinámicas?
Sí, OpenPyXL soporta la creación de varios tipos de gráficos y tablas dinámicas, facilitando la visualización de datos y el análisis de datos completo directamente dentro de las hojas de Excel.
¿Es necesario una licencia comercial para usar IronXL?
Sí, IronXL ofrece una licencia comercial con varias opciones de soporte, incluyendo un período de prueba, que brinda un fuerte soporte técnico y capacidades completas para la manipulación de archivos Excel.
¿Cómo maneja OpenPyXL la integración de fórmulas de Excel?
OpenPyXL puede gestionar y evaluar fórmulas dentro de hojas Excel, permitiendo operaciones de datos complejas y manteniendo la integridad de los datos durante la manipulación de archivos.
¿Qué opciones de soporte están disponibles para los usuarios de OpenPyXL?
OpenPyXL se basa en el soporte impulsado por la comunidad a través de foros y GitHub, ofreciendo un enfoque colaborativo para la resolución de problemas, mientras que IronXL proporciona soporte directo a través de correo electrónico, chat y teléfono.
¿Qué formatos de Excel soporta IronXL?
IronXL soporta varios formatos de archivos Excel, permitiendo a los desarrolladores trabajar con diferentes tipos de documentos Excel y permitiendo amplias capacidades de conversión a través de múltiples formatos de datos.
¿Cómo difieren IronXL y OpenPyXL en términos de compatibilidad de plataforma?
IronXL es compatible con Windows, macOS y Linux, proporcionando versatilidad para aplicaciones en diferentes entornos operativos. OpenPyXL se utiliza principalmente en entornos Python y se centra en la manipulación de archivos XLSX.










