C2MV commited on
Commit
dd5d71b
·
verified ·
1 Parent(s): b2bc06b

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +33 -0
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,