24/12/2015
En el entorno de la programación en Python, la manipulación de archivos Excel es una tarea común. Para ello, la librería Openpyxl se destaca como una herramienta poderosa y versátil. Esta tutorial exhaustiva te enseñará todo lo que necesitas saber sobre Openpyxl, desde su instalación hasta las técnicas más avanzadas para trabajar con hojas de cálculo.

¿Qué es Openpyxl?
Openpyxl es una librería de Python que te permite leer, escribir y modificar archivos Excel en el formato .xlsx (Excel 2010 y posteriores). A diferencia de otras opciones, Openpyxl no requiere tener instalado Microsoft Excel en tu sistema, lo que la convierte en una solución ideal para la automatización de tareas y el análisis de datos.
Características Principales de Openpyxl
- Lectura y escritura de archivos Excel: Openpyxl te permite tanto leer información de archivos .xlsx existentes como crear y guardar nuevos archivos.
- Trabajo con celdas: Accede, modifica y crea nuevas celdas en las hojas de cálculo. Puedes trabajar con celdas individuales o rangos de celdas.
- Soporte para fórmulas: Openpyxl permite insertar y calcular fórmulas de Excel directamente en tus hojas de cálculo.
- Estilos y formato: Aplica formato a las celdas, incluyendo cambios de fuente, color, bordes, etc., para mejorar la presentación de tus datos.
- Gráficos: Aunque con capacidades más limitadas que otras bibliotecas, Openpyxl ofrece la posibilidad de crear gráficos simples en tus archivos Excel.
- Tablas dinámicas: Si bien la funcionalidad es limitada, Openpyxl permite cierta interacción con tablas dinámicas.
Instalación de Openpyxl
Para comenzar a utilizar Openpyxl, debes instalarlo. La forma más sencilla es mediante el gestor de paquetes pip :
pip install openpyxlUna vez instalado, ya puedes empezar a trabajar con archivos Excel.
Uso Básico de Openpyxl
Creación de un Nuevo Archivo Excel
Crear un nuevo archivo Excel y guardarlo es muy sencillo con Openpyxl:
from openpyxl import Workbookwb = Workbook()sheet = wb.activesheet.title = "Hoja1"wb.save("nuevo_archivo.xlsx")Escritura de Datos en un Archivo Excel
Para escribir datos en un archivo Excel, puedes acceder a las celdas individualmente:
from openpyxl import Workbookwb = Workbook()sheet = wb.activesheet["A1"] = "Nombre"sheet["B1"] = "Edad"sheet["A2"] = "Juan"sheet["B2"] = 30wb.save("datos.xlsx")Lectura de Datos de un Archivo Excel
Leer datos es igual de simple. Puedes iterar sobre las filas o acceder a celdas específicas:
from openpyxl import load_workbookwb = load_workbook("datos.xlsx")sheet = wb.activefor row in sheet.iter_rows(min_row=1, max_row=2, values_only=True): print(row)Modificación de un Archivo Excel Existente
Modificar un archivo existente es tan fácil como leerlo y luego cambiar los valores de las celdas:
from openpyxl import load_workbookwb = load_workbook("datos.xlsx")sheet = wb.activesheet["B2"] = 31wb.save("datos_modificados.xlsx")Formato de Celdas
Openpyxl permite aplicar estilos y formato a las celdas:
from openpyxl import Workbookfrom openpyxl.styles import Fontwb = Workbook()sheet = wb.activesheet["A1"] = "Texto con formato"sheet["A1"].font = Font(size=14, bold=True, color="FF0000")wb.save("formato.xlsx")Añadir Fórmulas a Celdas
Puedes añadir fórmulas a las celdas como cualquier otro valor:
from openpyxl import Workbookwb = Workbook()sheet = wb.activesheet["A1"] = 10sheet["A2"] = 20sheet["A3"] = "=A1 + A2"wb.save("formulas.xlsx")Fusionar y Desfusionar Celdas
Openpyxl permite fusionar y desfusionar rangos de celdas:
from openpyxl import Workbookwb = Workbook()sheet = wb.activesheet.merge_cells("A1:B1")sheet["A1"] = "Celdas fusionadas"wb.save("fusion.xlsx")Consultas Habituales
¿Cómo importar Openpyxl en Python?
Se importa con la sentencia import openpyxl.
¿Cómo instalar Openpyxl en Windows?
Se instala usando pip: pip install openpyxl
¿Cuál es mejor: Pandas o Openpyxl?
Pandas es excelente para el análisis de datos y la manipulación de DataFrames, mientras que Openpyxl ofrece un control más granular sobre el formato y la estructura del archivo Excel. La elección depende de tus necesidades específicas.
Tabla Comparativa: Pandas vs. Openpyxl
| Característica | Pandas | Openpyxl |
|---|---|---|
| Manipulación de datos | Excelente | Limitada |
| Control de formato | Limitado | Excelente |
| Eficiencia | Generalmente más eficiente para grandes conjuntos de datos | Más eficiente para tareas específicas de formato |
| Complejidad | Relativamente fácil de usar | Requiere mayor conocimiento de la estructura de los archivos Excel |
Openpyxl es una librería esencial para cualquier desarrollador de Python que trabaje con archivos Excel. Su capacidad para leer, escribir y manipular hojas de cálculo, junto con su control sobre el formato y las fórmulas, la convierte en una herramienta indispensable para la automatización de tareas y el análisis de datos. Esta tutorial te ha proporcionado una base sólida para comenzar a utilizar Openpyxl en tus proyectos.
Si quieres conocer otros artículos parecidos a Librería openpyxl en python para manipular archivos excel puedes visitar la categoría Libros y Librerías.
