2 usuarios conectados

Automatización y scripting. Hojas de cálculo

Comparte esto

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:

Ejemplo Básico con openpyxl:

Python
import openpyxl

# Crear un nuevo libro de trabajo
wb = openpyxl.Workbook()
sheet = wb.active
sheet.title = "Datos de Prueba"

# Escribir datos en las celdas
sheet['A1'] = "Nombre"
sheet['B1'] = "Edad"
sheet['C1'] = "Ciudad"

datos = [
    ("Alice", 30, "Nueva York"),
    ("Bob", 25, "Londres"),
    ("Charlie", 35, "París")
]

for row_index, data_row in enumerate(datos, start=2):
    sheet.cell(row=row_index, column=1, value=data_row[0])
    sheet.cell(row=row_index, column=2, value=data_row[1])
    sheet.cell(row=row_index, column=3, value=data_row[2])

# Aplicar una fórmula
sheet['D1'] = "Promedio Edad"
sheet['D2'] = '=AVERAGE(B2:B4)'

# Guardar el libro de trabajo
wb.save("datos_prueba.xlsx")
print("Archivo 'datos_prueba.xlsx' creado.")

# Abrir un libro de trabajo existente
wb_load = openpyxl.load_workbook("datos_prueba.xlsx")
sheet_load = wb_load.active

# Leer datos del libro de trabajo
print("\nDatos leídos del archivo:")
for row in sheet_load.iter_rows(values_only=True):
    print(row)

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:

Ejemplo Básico con pandas:

Python
 
import pandas as pd

# Crear un DataFrame
data = {'Nombre': ['Alice', 'Bob', 'Charlie'],
        'Edad': [30, 25, 35],
        'Ciudad': ['Nueva York', 'Londres', 'París']}
df = pd.DataFrame(data)
print("DataFrame creado:\n", df)

# Escribir el DataFrame a un archivo Excel
df.to_excel("datos_pandas.xlsx", sheet_name="Datos", index=False)
print("\nDataFrame guardado en 'datos_pandas.xlsx'.")

# Leer datos desde un archivo Excel
df_leido = pd.read_excel("datos_pandas.xlsx", sheet_name="Datos")
print("\nDatos leídos desde 'datos_pandas.xlsx':\n", df_leido)

# Realizar algunas manipulaciones (ejemplo: filtrar por edad)
df_mayores_de_25 = df_leido[df_leido['Edad'] > 25]
print("\nPersonas mayores de 25:\n", df_mayores_de_25)

# Escribir el DataFrame filtrado a otra hoja del mismo archivo
with pd.ExcelWriter("datos_pandas.xlsx", mode='a') as writer:
    df_mayores_de_25.to_excel(writer, sheet_name='Mayores de 25', index=False)
print("\nDataFrame filtrado añadido a 'datos_pandas.xlsx' en la hoja 'Mayores de 25'.")

Cuándo Usar openpyxl vs. pandas para Hojas de Cálculo:

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.