En este tutorial, aprenderás a crear una Data Table utilizando Flet y Python. También verás cómo guardar los datos en un archivo Excel. Vamos a construir una aplicación donde puedes ingresar nombres y edades, agregar estos datos a una tabla y luego exportarlos a Excel.
Primero, crea un nuevo archivo de Python llamado app.py
. Asegúrate de tener instalada la librería Flet ejecutando pip install flet
en tu terminal. Importa Flet y crea la función principal:
import flet as ft
def Main(page: ft.Page):
page.title = "Data Table en Flet con Excel"
page.bgcolor = ft.colors.BLUE_GREY_900
page.horizontal_alignment = ft.HorizontalAlignment.CENTER
titulo = ft.Text("Data Table en Flet", size=24, color=ft.colors.WHITE)
page.add(titulo)
ft.app(target=Main)
Este código establece el título de la ventana y el color de fondo, y añade un título dentro de la ventana.
Vamos a crear una tabla de datos. Añade el siguiente código dentro de la función Main
:
data_table = ft.DataTable(
bgcolor=ft.colors.BLUE_GREY_700,
border=ft.border.all(2, ft.colors.BLUE_GREY_400),
border_radius=10,
vertical_lines=ft.border.BorderSide(3, ft.colors.BLUE_GREY_400),
horizontal_lines=ft.border.BorderSide(1, ft.colors.BLUE_GREY_800),
columns=[
ft.DataColumn(ft.Text("ID", color=ft.colors.BLUE_200)),
ft.DataColumn(ft.Text("Nombre", color=ft.colors.BLUE_200)),
ft.DataColumn(ft.Text("Edad", color=ft.colors.BLUE_200)),
],
rows=[]
)
page.add(data_table)
Este código crea una tabla con encabezados para ID, Nombre y Edad. También establece estilos para la tabla.
Vamos a crear campos de entrada para el nombre y la edad, y un botón para agregar los datos a la tabla:
nombre_input = ft.TextField(label="Nombre", bgcolor=ft.colors.BLUE_GREY_800, color=ft.colors.WHITE)
edad_input = ft.TextField(label="Edad", bgcolor=ft.colors.BLUE_GREY_800, color=ft.colors.WHITE)
input_container = ft.Row([nombre_input, edad_input])
def agregar_fila(e):
nueva_fila = ft.DataRow(
cells=[
ft.DataCell(ft.Text(str(len(data_table.rows) + 1), color=ft.colors.WHITE)),
ft.DataCell(ft.Text(nombre_input.value, color=ft.colors.WHITE)),
ft.DataCell(ft.Text(edad_input.value, color=ft.colors.WHITE)),
]
)
data_table.rows.append(nueva_fila)
nombre_input.value = ""
edad_input.value = ""
page.update()
agregar_btn = ft.ElevatedButton("Agregar", on_click=agregar_fila, color=ft.colors.WHITE, bgcolor=ft.colors.BLUE)
page.add(input_container, agregar_btn)
Este código crea campos de entrada para el nombre y la edad, y un botón que, al ser presionado, añade una nueva fila a la tabla con los datos ingresados.
Finalmente, vamos a crear una función para guardar los datos en un archivo Excel:
import openpyxl
from datetime import datetime
def guardar_excel(e):
wb = openpyxl.Workbook()
ws = wb.active
ws.title = "Datos"
ws.append(["ID", "Nombre", "Edad"])
for row in data_table.rows:
ws.append([cell.value for cell in row.cells])
fecha = datetime.now().strftime("%Y%m%d_%H%M%S")
archivo_nombre = f"datos_tabla_{fecha}.xlsx"
wb.save(archivo_nombre)
page.snack_bar = ft.SnackBar(ft.Text(f"Datos guardados en {archivo_nombre}"), open=True)
page.update()
guardar_btn = ft.ElevatedButton("Guardar en Excel", on_click=guardar_excel, color=ft.colors.WHITE, bgcolor=ft.colors.GREEN)
page.add(guardar_btn)
Este código crea un archivo Excel, guarda los datos de la tabla en él, y muestra un mensaje de confirmación utilizando una barra de notificaciones.
En este tutorial, hemos aprendido cómo crear una Data Table utilizando Flet y Python, cómo agregar datos a la tabla y cómo guardar los datos en un archivo Excel. Agradezco a los miembros de Patreon y YouTube que con su apoyo hacen posible seguir trayendo contenido al canal. Si te gustó el video, no olvides suscribirte y darle like. ¡Nos vemos en el próximo tutorial!