Cómo hacer un menú dentro de una hoja de cálculo con Google Apps Script

Hay ocasiones en que necesitamos crear funcionalidades nuevas para nuestras hojas de cálculo y nos interesa que los usuarios de esa hoja puedan usar esa funcionalidad.

La manera  más sencilla es mediante menús contextuales tal como si fueran funciones que nos ofrece el mismo Google

Hay varias maneras de hacer esto pero os enseñaré la más actual ya que hay el riesgo que las otras maneras queden obsoletas en breve. Tranquilos que no es complicado.

Como siempre, con un ejemplo lo veréis más claro

function onOpen()
{
  var ui = SpreadsheetApp.getUi();
  var rrhh = ui.createMenu('Recursos Humanos')
                  .addItem('Contratar', 'Contract')
                  .addItem('Despedir', 'Fire');
 
  ui.createMenu('Menu Adicional')
      .addItem('Contabilidad', 'Contability')
      .addSeparator()
      .addSubMenu(rrhh)
      .addToUi();
}

function Contability() {
  SpreadsheetApp.getUi().alert('Vamos a contabilizar cosas!!!');
}

function Contract() {
  SpreadsheetApp.getUi().alert('Se contrata un nuevo trabajado!');
}

function Fire() {
  SpreadsheetApp.getUi().alert('Hay uno que ya no trabaja aqui!');
}

Lo veis? Sencillo.

Si ejecutáis el onOpen veréis como aparece en vuestro spreadsheet un menú que estéticamente es idéntico a cualquier otro que venga de serie con las hojas de cálculo de Drive.


Los menús son una manera muy sencilla de enriquecer las funcionalidades de una hoja de cálculo de Google, espero que lo aprovechéis.

6 comentarios:

  1. HOLA ...muy bueno el ejemplo... quisiera saber como hacer que al darle click a un menu me abra un libro de la hoja de calculo... muchas gracias

    ResponderEliminar
    Respuestas
    1. Te tengo que decir que no se si puede hacer. Puedes poner un link en un hoja de calculo ( en una celda ) = HYPERLINK(enlace,texto); pero desde GAS me parece que no lo podrás hacer.

      Nos vemos

      Eliminar
  2. MUCHAS GRACIAS... OSEA QUE NO SE PUEDE TRABAJAR EN DISEÑAR UN MENU PERSONALIZADO QUE AL DARLE CLICK A LAS OPCIONES TE ABRA UNA HOJA DEL LIBRO

    ResponderEliminar
  3. A priori te diria que no, pero si encuentras la manera, por favor, hazmelo llegar.

    ResponderEliminar
  4. Me puedes comentar como hacer automática la autorización del scrip o function , para las personas q tienen ya compartido el documeto, gracias

    ResponderEliminar
    Respuestas
    1. Diria que es imposible. Cada usuario debe autorizar con sus permisos. La manera que no te pida permisos es o bien que lo que hagas no pida permisos ( practicamente imposible ) o bien que el script lo implementes como ejecutado por ti, de forma que solo tu dandole permisos ya seria suficiente, pero esta opción no siempre es la correcta.

      Siento no poder darte una solución mejor.

      Eliminar

Related Posts Plugin for WordPress, Blogger...