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,
|