En este tutorial, les mostraré cómo crear una plantilla de gestión de proyectos en Excel utilizando Python y la biblioteca openpyxl. Esta plantilla incluirá secciones para la información del proyecto, tareas, y un resumen con cálculos automáticos. ¡Vamos a ello!
Paso 1: Instalación de OpenPyXL
Primero, asegúrate de tener instalada la biblioteca openpyxl. Si no la tienes, puedes instalarla usando pip:
pip install openpyxl
Paso 2: Crear el Archivo Excel
El siguiente código crea un archivo Excel llamado gestion_proyectos.xlsx
con una hoja de cálculo llamada «Gestión de Proyectos». Esta hoja está dividida en tres secciones principales:
- Información del Proyecto: Aquí se pueden ingresar detalles como el nombre del proyecto, descripción, fechas, responsable, estado, presupuesto y costo actual.
- Tareas: Esta sección permite registrar tareas individuales con su ID, nombre, descripción, fechas, responsable, estado y costo.
- Resumen: Aquí se calculan automáticamente el total de tareas, tareas completadas, tareas pendientes, el costo total y si el proyecto está dentro del presupuesto.
Paso 3: Explicación del Código
Importaciones y Configuración Inicial
import openpyxl
from openpyxl.styles import Font, Alignment, Border, Side, PatternFill
openpyxl
: Biblioteca para manipular archivos Excel.Font
,Alignment
,Border
,Side
,PatternFill
: Clases para aplicar estilos a las celdas.
Crear el Libro de Trabajo y la Hoja de Cálculo
wb = openpyxl.Workbook()
ws = wb.active
ws.title = "Gestión de Proyectos"
Workbook()
: Crea un nuevo libro de trabajo.ws = wb.active
: Obtiene la hoja activa.ws.title = "Gestión de Proyectos"
: Cambia el nombre de la hoja.
Definición de Estilos
header_font = Font(bold=True, size=14)
subheader_font = Font(bold=True, size=12)
normal_font = Font(size=12)
alignment = Alignment(horizontal='center', vertical='center')
border = Border(
left=Side(style='thin'),
right=Side(style='thin'),
top=Side(style='thin'),
bottom=Side(style='thin')
)
fill = PatternFill(
start_color="D3D3D3", end_color="D3D3D3", fill_type="solid"
)
Font
: Define el estilo de fuente.Alignment
: Alinea el contenido de las celdas.Border
: Aplica bordes a las celdas.PatternFill
: Rellena las celdas con un color.
Función para Aplicar Estilos
def apply_styles(cell, font, alignment=None, border=None, fill=None):
cell.font = font
if alignment:
cell.alignment = alignment
if border:
cell.border = border
if fill:
cell.fill = fill
Esta función aplica los estilos definidos a una celda específica.
Sección de Información del Proyecto
ws['A1'] = "Gestión de Proyectos"
apply_styles(ws['A1'], header_font, alignment)
ws.merge_cells('A1:H1')
ws['A3'] = "Información del Proyecto"
apply_styles(ws['A3'], subheader_font, alignment, fill=fill)
ws.merge_cells('A3:H3')
ws['A4'] = "Nombre del Proyecto"
ws['B4'] = "Descripción"
ws['C4'] = "Fecha de Inicio"
ws['D4'] = "Fecha de Finalización"
ws['E4'] = "Responsable"
ws['F4'] = "Estado"
ws['G4'] = "Presupuesto"
ws['H4'] = "Costo Actual"
- Se crea un título y se aplican estilos.
- Se definen los encabezados de la sección de información del proyecto.
Sección de Tareas
ws['A6'] = "Tareas"
apply_styles(ws['A6'], subheader_font, alignment, fill=fill)
ws.merge_cells('A6:H6')
ws['A7'] = "ID"
ws['B7'] = "Nombre de la Tarea"
ws['C7'] = "Descripción"
ws['D7'] = "Fecha de Inicio"
ws['E7'] = "Fecha de Finalización"
ws['F7'] = "Responsable"
ws['G7'] = "Estado"
ws['H7'] = "Costo"
- Se crea un título para la sección de tareas.
- Se definen los encabezados de la sección de tareas.
Sección de Resumen
ws['A9'] = "Resumen"
apply_styles(ws['A9'], subheader_font, alignment, fill=fill)
ws.merge_cells('A9:H9')
ws['A10'] = "Total de Tareas"
ws['B10'] = "=COUNTA(B8:B999)"
apply_styles(ws['A10'], normal_font, alignment, border)
apply_styles(ws['B10'], normal_font, alignment, border)
ws['A11'] = "Tareas Completadas"
ws['B11'] = "=COUNTIF(G8:G999, \"Completada\")"
apply_styles(ws['A11'], normal_font, alignment, border)
apply_styles(ws['B11'], normal_font, alignment, border)
ws['A12'] = "Tareas Pendientes"
ws['B12'] = "=COUNTIF(G8:G999, \"Pendiente\")"
apply_styles(ws['A12'], normal_font, alignment, border)
apply_styles(ws['B12'], normal_font, alignment, border)
ws['A13'] = "Costo Total"
ws['B13'] = "=SUM(H8:H999)"
apply_styles(ws['A13'], normal_font, alignment, border)
apply_styles(ws['B13'], normal_font, alignment, border)
ws['A14'] = "Presupuesto vs Costo Actual"
ws['B14'] = (
"=IF(H4>B13, "
"\"Dentro del Presupuesto\", \"Fuera del Presupuesto\")")
apply_styles(ws['A14'], normal_font, alignment, border)
apply_styles(ws['B14'], normal_font, alignment, border)
- Se crea un título para la sección de resumen.
- Se definen fórmulas para calcular el total de tareas, tareas completadas, tareas pendientes, costo total y si el proyecto está dentro del presupuesto.
Guardar el Archivo
wb.save("gestion_proyectos.xlsx")
print("Archivo Excel creado exitosamente: gestion_proyectos.xlsx")
wb.save("gestion_proyectos.xlsx")
: Guarda el archivo Excel.print
: Muestra un mensaje de confirmación.
Paso 4: Ejecutar el Código
Para ejecutar el código, simplemente guarda el script en un archivo gestion-proyectos.py
y ejecútalo:
python gestion-proyectos.py
¡Y eso es todo! Ahora tienes una plantilla de gestión de proyectos en Excel creada automáticamente con Python. Puedes personalizarla según tus necesidades y agregar más funcionalidades si lo deseas.
¡Espero que este tutorial te haya sido útil! Si tienes alguna pregunta o sugerencia, no dudes en dejar un comentario. ¡Feliz codificación! 🚀