¿Qué hace automatización-excel?
Descripción: Esta habilidad permite a agentes de IA (como Claude Code, Cursor, Codex, etc.) automatizar tareas en Microsoft Excel, incluyendo formateo de celdas, creación de gráficos, manipulación de datos, filtros y generación de informes mediante scripts VBA y Python.
Plataformas Soportadas
- Claude Code
- Cursor
- Codex (OpenAI)
- Otros asistentes de IA con capacidad de ejecución de scripts
Requisitos
- Python 3.6+ con openpyxl instalado (
pip install openpyxl) - Microsoft Excel (para ejecutar scripts VBA)
- Acceso a archivos .xlsx
Comandos y Uso
1. Formatear celdas (Python con openpyxl)
from openpyxl import Workbook
from openpyxl.styles import Font, PatternFill, Alignment
wb = Workbook()
ws = wb.active
# Encabezados
ws['A1'] = 'Nombre'
ws['B1'] = 'Edad'
ws['C1'] = 'Salario'
# Aplicar estilos
titulo_font = Font(bold=True, color='FFFFFF')
titulo_fill = PatternFill(start_color='4F81BD', end_color='4F81BD', fill_type='solid')
for cell in ws[1]:
cell.font = titulo_font
cell.fill = titulo_fill
cell.alignment = Alignment(horizontal='center')
wb.save('reporte_formateado.xlsx')
2. Crear gráficos (Python con openpyxl)
from openpyxl.chart import BarChart, Reference
ws.append(['Producto', 'Ventas'])
ws.append(['A', 150])
ws.append(['B', 200])
ws.append(['C', 120])
chart = BarChart()
chart.title = 'Ventas por Producto'
chart.y_axis.title = 'Monto'
chart.x_axis.title = 'Producto'
data = Reference(ws, min_col=2, min_row=1, max_row=4)
cats = Reference(ws, min_col=1, min_row=2, max_row=4)
chart.add_data(data, titles_from_data=True)
chart.set_categories(cats)
ws.add_chart(chart, 'E2')
wb.save('ventas_con_grafico.xlsx')
3. Manipulación de datos con VBA (para ejecutar en Excel)
Sub LimpiarYFormatear()
' Limpiar espacios en blanco
Columns("A").Replace What:=" ", Replacement:="", LookAt:=xlPart
' Formatear como tabla
ActiveSheet.ListObjects.Add(xlSrcRange, Range("$A$1:$C$100"), , xlYes).Name = "TablaDatos"
' Autofiltrar
ActiveSheet.ListObjects("TablaDatos").Range.AutoFilter Field:=2, Criteria1:=">30"
MsgBox "Formateo completado"
End Sub
4. Filtrar y exportar datos (Python)
from openpyxl import load_workbook
wb = load_workbook('datos_originales.xlsx')
ws = wb.active
# Filtrar filas donde columna B > 30
for row in ws.iter_rows(min_row=2, max_row=ws.max_row, min_col=1, max_col=3):
if row[1].value and row[1].value > 30:
print(f'{row[0].value}, {row[1].value}, {row[2].value}')
Ejemplo de flujo completo
- Cargar archivo Excel con
load_workbook - Aplicar formateo y estilos según necesidades
- Crear gráficos si es necesario
- Guardar el archivo modificado
- (Opcional) Ejecutar macros VBA para tareas adicionales
Limitaciones y Notas
- openpyxl no soporta macros VBA; para scripts VBA se requiere Excel instalado.
- Los archivos deben tener extensión .xlsx (no .xls).
- Para gráficos complejos, se recomienda predefinir rangos de datos.
- Esta habilidad no modifica archivos protegidos con contraseña.
Contribuciones
Las mejoras y extensiones a esta habilidad son bienvenidas. Por favor, abre un issue o pull request en el repositorio claude-office-skills/excel-automation.