Update app.py
Browse files
app.py
CHANGED
@@ -533,6 +533,31 @@ def actualizar_tabla_evento(df, n_filas, concentracion, unidad, n_replicas):
|
|
533 |
|
534 |
return df_new
|
535 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
536 |
# Interfaz Gradio
|
537 |
with gr.Blocks(theme=gr.themes.Soft()) as interfaz:
|
538 |
gr.Markdown("""
|
@@ -583,6 +608,7 @@ with gr.Blocks(theme=gr.themes.Soft()) as interfaz:
|
|
583 |
ejemplo_ufc_btn = gr.Button("📋 Cargar Ejemplo UFC", variant="secondary")
|
584 |
ejemplo_od_btn = gr.Button("📋 Cargar Ejemplo OD", variant="secondary")
|
585 |
sinteticos_btn = gr.Button("🧪 Generar Datos Sintéticos", variant="secondary")
|
|
|
586 |
|
587 |
tabla_output = gr.DataFrame(
|
588 |
wrap=True,
|
@@ -706,6 +732,13 @@ with gr.Blocks(theme=gr.themes.Soft()) as interfaz:
|
|
706 |
outputs=tabla_output
|
707 |
)
|
708 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
709 |
# Evento al presionar el botón Ajustar Decimales
|
710 |
ajustar_decimales_btn.click(
|
711 |
fn=ajustar_decimales_evento,
|
|
|
533 |
|
534 |
return df_new
|
535 |
|
536 |
+
def cargar_excel(file):
|
537 |
+
# Leer el archivo Excel
|
538 |
+
df = pd.read_excel(file.name, sheet_name=None)
|
539 |
+
|
540 |
+
# Verificar que el archivo tenga al menos dos pestañas
|
541 |
+
if len(df) < 2:
|
542 |
+
return "El archivo debe tener al menos dos pestañas.", None, None, None, None, None, None
|
543 |
+
|
544 |
+
# Obtener la primera pestaña como referencia
|
545 |
+
primera_pestaña = next(iter(df.values()))
|
546 |
+
concentracion_inicial = primera_pestaña.iloc[0, 0]
|
547 |
+
unidad_medida = primera_pestaña.columns[0].split('(')[-1].split(')')[0]
|
548 |
+
n_filas = len(primera_pestaña)
|
549 |
+
n_replicas = len(df)
|
550 |
+
|
551 |
+
# Generar la tabla base
|
552 |
+
df_base = generar_tabla(n_filas, concentracion_inicial, unidad_medida, n_replicas)
|
553 |
+
|
554 |
+
# Llenar la tabla con los datos de cada pestaña
|
555 |
+
for i, (sheet_name, sheet_df) in enumerate(df.items(), start=1):
|
556 |
+
col_real = f"Concentración Real {i} ({unidad_medida})"
|
557 |
+
df_base[col_real] = sheet_df.iloc[:, 1].values
|
558 |
+
|
559 |
+
return concentracion_inicial, unidad_medida, n_filas, n_replicas, df_base, "", None, ""
|
560 |
+
|
561 |
# Interfaz Gradio
|
562 |
with gr.Blocks(theme=gr.themes.Soft()) as interfaz:
|
563 |
gr.Markdown("""
|
|
|
608 |
ejemplo_ufc_btn = gr.Button("📋 Cargar Ejemplo UFC", variant="secondary")
|
609 |
ejemplo_od_btn = gr.Button("📋 Cargar Ejemplo OD", variant="secondary")
|
610 |
sinteticos_btn = gr.Button("🧪 Generar Datos Sintéticos", variant="secondary")
|
611 |
+
cargar_excel_btn = gr.UploadButton("📂 Cargar Excel", file_types=[".xlsx"], variant="secondary")
|
612 |
|
613 |
tabla_output = gr.DataFrame(
|
614 |
wrap=True,
|
|
|
732 |
outputs=tabla_output
|
733 |
)
|
734 |
|
735 |
+
# Evento para cargar archivo Excel
|
736 |
+
cargar_excel_btn.upload(
|
737 |
+
fn=cargar_excel,
|
738 |
+
inputs=[cargar_excel_btn],
|
739 |
+
outputs=[concentracion_input, unidad_input, filas_slider, replicas_slider, tabla_output, estado_output, graficos_output, informe_output]
|
740 |
+
)
|
741 |
+
|
742 |
# Evento al presionar el botón Ajustar Decimales
|
743 |
ajustar_decimales_btn.click(
|
744 |
fn=ajustar_decimales_evento,
|