2 usuarios conectados
Automatización y scripting. Hojas de cálculo
Automatización y scripting. Hojas de cálculo
Ahora vamos a explorar cómo Python puede
automatizar la manipulación de hojas de cálculo utilizando las
poderosas librerías openpyxl y pandas. Estas
librerías te permiten leer, escribir, modificar y analizar datos almacenados en
formatos de hoja de cálculo de manera programática.
1. openpyxl: Trabajando con Archivos Excel
(.xlsx)
openpyxl
es una librería de Python
para leer y escribir archivos Excel 2010 xlsx/xlsm/xltx/xltm. Te permite crear
hojas de cálculo desde cero, acceder a datos existentes, modificar celdas,
estilos, fórmulas y más.
Tareas Comunes con openpyxl:
-
Abrir y Crear Libros de Trabajo:
openpyxl.load_workbook(filename)
:
Abre un archivo Excel existente.
openpyxl.Workbook()
: Crea
un nuevo libro de trabajo en memoria.
wb.save(filename)
: Guarda el
libro de trabajo en un archivo.
-
Acceder a Hojas de Trabajo:
wb.sheetnames
: Lista de los
nombres de las hojas en el libro de trabajo.
wb['Sheet1']
o
wb.active
: Acceder a una hoja por nombre o a la hoja activa.
wb.create_sheet("Nueva Hoja",
index=0)
: Crear una nueva hoja en una posición específica.
del wb['Hoja a Eliminar']
:
Eliminar una hoja.
-
Trabajar con Celdas:
sheet['A1']
: Acceder a una
celda por su nombre.
sheet.cell(row=1, column=1)
:
Acceder a una celda por su fila y columna (indexadas desde 1).
cell.value
: Obtener o
establecer el valor de una celda.
cell.row
, cell.column
,
cell.coordinate
: Obtener información de la celda.
-
Iterar sobre Celdas, Filas y
Columnas:
sheet.rows
: Generador de
tuplas de celdas por fila.
sheet.columns
: Generador de
tuplas de celdas por columna.
sheet['A1':'C3']
: Obtener
un rango de celdas.
sheet.iter_rows(min_row=1,
max_row=3, min_col=1, max_col=3)
: Iterar sobre un rango
específico de filas y columnas.
-
Modificar Celdas y Estilos:
- Asignar valores a celdas:
sheet['B2'] = 42
.
- Aplicar estilos (fuente, color,
alineación, bordes) utilizando el módulo
openpyxl.styles
.
- Usar fórmulas:
sheet['D1'] =
'=SUM(A1:C1)'
.
Ejemplo Básico con openpyxl:
2. pandas: Manipulación y Análisis de
Datos Tabulares (Incluyendo Hojas de Cálculo)
pandas
es una librería fundamental
para el análisis de datos en Python. Proporciona estructuras de datos de alto
rendimiento, como DataFrames, que son ideales para representar datos tabulares,
incluyendo datos de hojas de cálculo. Pandas facilita la lectura y escritura de
datos en varios formatos, incluyendo Excel, CSV, y más.
Tareas Comunes con pandas para Hojas de
Cálculo:
-
Leer Datos desde Archivos Excel:
pd.read_excel(io, sheet_name=0,
header=0, names=None, index_col=None, ...)
: Lee datos de un
archivo Excel en un DataFrame. Puedes especificar la hoja por nombre o
índice, la fila de encabezado, los nombres de las columnas, la columna
de índice, etc.
-
Escribir DataFrames a Archivos Excel:
df.to_excel(excel_writer,
sheet_name='Sheet1', startrow=0, startcol=0, header=True, index=True,
...)
: Escribe un DataFrame a un archivo Excel. Puedes especificar
el nombre de la hoja, la posición inicial, si incluir el encabezado y el
índice, etc.
-
Manipular Datos en el DataFrame:
Una vez que los datos están en un DataFrame, puedes utilizar todas las
potentes funcionalidades de pandas para limpiar, transformar, filtrar,
agrupar y analizar los datos.
Ejemplo Básico con pandas:
Cuándo Usar openpyxl vs. pandas para
Hojas de Cálculo:
- openpyxl: Es la mejor
opción cuando necesitas un control preciso sobre el formato del archivo
Excel (estilos, fórmulas complejas, manipulación de hojas, gráficos) o
cuando necesitas trabajar con archivos Excel sin necesariamente realizar un
análisis de datos complejo.
- pandas: Es la opción ideal
cuando el enfoque principal es el análisis y la manipulación de los datos
tabulares contenidos en la hoja de cálculo. Pandas simplifica enormemente la
lectura, escritura y el procesamiento de los datos en un formato
estructurado (DataFrame). Si necesitas realizar tareas de análisis de datos
después de leer el archivo Excel, pandas es la herramienta preferida.
A menudo, estas dos librerías se pueden
utilizar en conjunto. Por ejemplo, podrías usar pandas para leer y analizar los
datos de un archivo Excel y luego usar openpyxl para aplicar un formato
específico a la hoja de cálculo resultante. La elección depende de los
requisitos específicos de tu tarea de automatización de hojas de cálculo.