CodeGym /Cursos /Python SELF ES /Desarrollo de interfaz para trabajar con reportes y datos...

Desarrollo de interfaz para trabajar con reportes y datos

Python SELF ES
Nivel 50 , Lección 4
Disponible

1. Creación de una interfaz para trabajar con reportes

Bueno, estudiantes, ¡es hora de sumergirnos en el diseño y desarrollo de una interfaz que nos permitirá no solo recopilar datos, sino también presentarlos de una forma comprensible y, lo más importante, bonita! Hoy crearemos una aplicación que hará que generar y visualizar reportes sea tan fácil como programar en Python después de una buena taza de café.

Construcción de la interfaz para seleccionar y mostrar reportes

Empecemos creando una interfaz desde la cual el usuario pueda seleccionar los reportes a mostrar. La interfaz incluirá botones para cargar datos, menús desplegables para elegir diferentes reportes y un área para mostrar gráficos.


import tkinter as tk
from tkinter import ttk

# Creamos la ventana principal
root = tk.Tk()
root.title("Reportes y datos")

# Añadimos un menú desplegable para seleccionar el reporte
report_label = ttk.Label(root, text="Selecciona un reporte:")
report_label.pack(pady=10)

report_options = ["Reporte №1", "Reporte №2", "Reporte №3"]
selected_report = tk.StringVar(value=report_options[0])

report_menu = ttk.Combobox(root, textvariable=selected_report, values=report_options)
report_menu.pack(pady=10)

# Iniciar el bucle principal de la aplicación
root.mainloop()

Al ejecutar el código anterior, verás una ventana sencilla donde puedes seleccionar uno de los reportes ofrecidos. Aunque todavía no se ven gráficos, esta es la base sobre la que construiremos la funcionalidad de la aplicación.

2. Integración con bibliotecas gráficas

Uso de Matplotlib para mostrar gráficos en la aplicación

Vamos a los gráficos. Para su visualización utilizaremos la popular biblioteca Matplotlib. Esta biblioteca es excelente para mostrar datos y puede integrarse con aplicaciones basadas en Tkinter. Primero, asegúrate de que la biblioteca esté instalada:


pip install matplotlib

Ahora añadimos un gráfico a nuestra interfaz usando FigureCanvasTkAgg para integrarlo con Tkinter.


from matplotlib.figure import Figure
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg

# Creamos el área para los gráficos
def plot_report():
    # Crear un gráfico de prueba
    fig = Figure(figsize=(5, 4), dpi=100)
    plot = fig.add_subplot(111)
    plot.plot([1, 2, 3, 4, 5], [2, 3, 5, 7, 11])  # Ejemplo de datos

    # Integramos el gráfico en la aplicación Tkinter
    canvas = FigureCanvasTkAgg(fig, master=root)
    canvas.draw()
    canvas.get_tk_widget().pack()

# Añadimos un botón para generar el gráfico
plot_button = ttk.Button(root, text="Generar reporte", command=plot_report)
plot_button.pack(pady=20)

Usando el ejemplo anterior, puedes mostrar un gráfico sencillo al presionar el botón "Generar reporte". Por supuesto, esto es solo el comienzo. En la práctica, reemplazarás este gráfico sencillo con datos de reportes reales.

3. Aplicación práctica

Creación de una aplicación para generar y visualizar reportes con integración de gráficos y datos

Ahora que tenemos la base para nuestra interfaz con gráficos, podemos explorar cómo presentar datos de maneras más complejas y funcionales. Para ello, puedes integrar datos de tus archivos Excel o CSV procesados, así como mostrar cualquier tipo de visualización que sea adecuada para tu uso.


import pandas as pd
import random

def load_data():
    # Ejemplo de generación de datos aleatorios
    data = pd.DataFrame({
        "x": list(range(1, 11)),
        "y": [random.randint(1, 10) for _ in range(10)]
    })
    return data

def plot_data_report():
    data = load_data()
    fig = Figure(figsize=(5, 4), dpi=100)
    plot = fig.add_subplot(111)
    plot.plot(data['x'], data['y'])

    canvas = FigureCanvasTkAgg(fig, master=root)
    canvas.draw()
    canvas.get_tk_widget().pack()

plot_button.config(command=plot_data_report)

Exportar reportes y datos desde la interfaz a varios formatos para su uso posterior

Para que la aplicación sea no solo demostrativa, sino también útil, es importante implementar la capacidad de exportar datos. Por ejemplo, a un archivo PDF o Excel, lo que permitirá compartir reportes con colegas o jefes:


from tkinter import filedialog
import matplotlib.pyplot as plt

def export_report():
    # Generación de datos y creación de gráfico
    data = load_data()
    fig, ax = plt.subplots()
    ax.plot(data['x'], data['y'])

    # Selección de ruta de guardado
    file_path = filedialog.asksaveasfilename(defaultextension=".pdf",
                                             filetypes=[("Archivos PDF", "*.pdf"), ("Todos los archivos", "*.*")])
    if file_path:
        fig.savefig(file_path)
        print(f"Reporte guardado en {file_path}")

# Añadimos un botón para exportar
export_button = ttk.Button(root, text="Exportar reporte", command=export_report)
export_button.pack(pady=10)

La función export_report permite elegir en qué archivo guardar el gráfico y lo guarda en el formato indicado. Ahora tu aplicación no solo visualiza datos, sino que también permite guardarlos en un formato práctico.

De esta manera, has aprendido a construir una interfaz para trabajar con reportes, integrar gráficos usando Matplotlib y añadir funcionalidad de exportación. En la práctica, estas habilidades son extremadamente útiles para desarrollar herramientas de automatización de reportes, análisis de datos y presentación en formas fáciles de entender. ¡Espero que te haya gustado! Y recuerda que la verdadera magia de la programación sucede cuando el código cobra vida en forma de una herramienta útil.

1
Опрос
Creación de una aplicación interactiva,  50 уровень,  4 лекция
недоступен
Creación de una aplicación interactiva
Creación de una aplicación interactiva
Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION