code: def sheet_to_table(worksheet):
      
  
      headers = []
      value_rows = []
      for row_i, row in enumerate(worksheet.iter_rows()):
  
          # lee los headers y el tamaño máximo de la hoja en columnas en fila 1
          if row_i == 0:
              for header_cell in row:
                  if header_cell.value:
                      headers.append(parse_value(header_cell))
                  else:
                      break
              continue
  
          # limita la cantidad de celdas a considerar, por la cantidad de headers
          row_cells = [parse_value(cell) for index, cell in enumerate(row)
                       if index < len(headers)]
  
          # agrega las filas siguientes que tengan al menos un campo no nulo
          if any(row_cells):
              value_rows.append(row_cells)
          # no se admiten filas vacías, eso determina el fin de la hoja
          else:
              break
  
      # convierte las filas en diccionarios con los headers como keys
      table = [
          # Ignoro los campos con valores nulos (None)
          {k: v for (k, v) in zip(headers, row) if v is not None}
          for row in value_rows
      ]
  
      return table
docs: Transforma una hoja de libro de Excel en una lista de diccionarios.
  
      Args:
          worksheet (Workbook.worksheet): Hoja de cálculo de un archivo XLSX
              según los lee `openpyxl`
  
      Returns:
          list_of_dicts: Lista de diccionarios, con tantos elementos como
              registros incluya la hoja, y con tantas claves por diccionario como
              campos tenga la hoja.