import gradio as gr from openpyxl import load_workbook, Workbook # Función para leer las columnas A y B del archivo Excel def leer_excel(ruta): wb = load_workbook(ruta) sheet = wb.active data = [] for row in sheet.iter_rows(min_row=2, max_col=2, values_only=True): # Solo las primeras dos columnas columna_a, columna_b = row if columna_a is not None and columna_b is not None: data.append([columna_a, columna_b]) return data # Función para agregar datos y guardar el archivo Excel modificado def agregar_y_guardar(data, nuevo_a, nuevo_b): # Cargar el archivo existente o crear uno nuevo wb = load_workbook('template_pcb.xlsx') sheet = wb.active # Agregar el nuevo valor al final del archivo Excel nueva_fila = [nuevo_a, nuevo_b] sheet.append(nueva_fila) # Guardar el archivo modificado con un nuevo nombre archivo_salida = "template_pcb_modificado.xlsx" wb.save(archivo_salida) return archivo_salida # Devolver la ruta del archivo guardado # Leer los datos iniciales del archivo Excel data = leer_excel('template_pcb.xlsx') # Crear la interfaz de Gradio def crear_formulario(data): with gr.Blocks() as demo: # Mostrar la tabla con los datos actuales tabla = gr.Dataframe(value=data, interactive=True, col_count=2, headers=["Columna A", "Columna B"], type="array", row_count=5) # Campos para agregar nuevos valores nuevo_a = gr.Textbox(label="Nuevo valor para Columna A") nuevo_b = gr.Textbox(label="Nuevo valor para Columna B") agregar_boton = gr.Button("Agregar nuevo valor y guardar Excel") # Campo para mostrar el enlace de descarga archivo_descarga = gr.File(label="Descargar archivo modificado") # Cuando se hace clic en el botón, agrega los valores y guarda el Excel modificado agregar_boton.click( agregar_y_guardar, inputs=[tabla, nuevo_a, nuevo_b], outputs=archivo_descarga ) return demo # Crear la interfaz de Gradio demo = crear_formulario(data) # Lanzar la interfaz demo.launch()