Class Ui

Ui

Es una instancia del entorno de la interfaz de usuario de una app de Google que permite que la secuencia de comandos agregue funciones como menús, diálogos y barras laterales. Una secuencia de comandos solo puede interactuar con la IU de la instancia actual de un editor abierto y solo si está vinculada al contenedor del editor.

// Display a dialog box with a title, message, input field, and "Yes" and "No"
// buttons. The user can also close the dialog by clicking the close button in
// its title bar.
const ui = SpreadsheetApp.getUi();
const response = ui.prompt(
    'Getting to know you',
    'May I know your name?',
    ui.ButtonSet.YES_NO,
);

// Process the user's response.
if (response.getSelectedButton() === ui.Button.YES) {
  Logger.log('The user\'s name is %s.', response.getResponseText());
} else if (response.getSelectedButton() === ui.Button.NO) {
  Logger.log('The user didn\'t want to provide a name.');
} else {
  Logger.log('The user clicked the close button in the dialog\'s title bar.');
}

Propiedades

PropiedadTipoDescripción
ButtonButtonEs una enumeración que representa botones de diálogo predeterminados y localizados que muestra una alerta o PromptResponse.getSelectedButton() para indicar en qué botón de un diálogo hizo clic el usuario.
ButtonSetButtonSetEs una enumeración que representa conjuntos predeterminados y localizados de uno o más botones de diálogo que se pueden agregar a una alerta o un mensaje.

Métodos

MétodoTipo de datos que se muestraDescripción breve
alert(prompt)ButtonAbre un cuadro de diálogo en el editor del usuario con el mensaje determinado y un botón "Aceptar".
alert(prompt, buttons)ButtonAbre un cuadro de diálogo en el editor del usuario con el mensaje y el conjunto de botones determinados.
alert(title, prompt, buttons)ButtonAbre un cuadro de diálogo en el editor del usuario con el título, el mensaje y el conjunto de botones determinados.
createAddonMenu()MenuCrea un compilador que se puede usar para insertar un submenú en el menú Extensiones del editor.
createMenu(caption)MenuCrea un compilador que se puede usar para agregar un menú a la interfaz de usuario del editor.
prompt(prompt)PromptResponseAbre un cuadro de diálogo de entrada en el editor del usuario con el mensaje determinado y un botón "Aceptar".
prompt(prompt, buttons)PromptResponseAbre un cuadro de diálogo de entrada en el editor del usuario con el mensaje y el conjunto de botones determinados.
prompt(title, prompt, buttons)PromptResponseAbre un cuadro de diálogo de entrada en el editor del usuario con el título, el mensaje y el conjunto de botones determinados.
showModalDialog(userInterface, title)voidAbre un cuadro de diálogo modal en el editor del usuario con contenido personalizado del cliente.
showModelessDialog(userInterface, title)voidAbre un cuadro de diálogo sin modo en el editor del usuario con contenido personalizado del cliente.
showSidebar(userInterface)voidAbre una barra lateral en el editor del usuario con contenido personalizado del cliente.

Documentación detallada

alert(prompt)

Abre un cuadro de diálogo en el editor del usuario con el mensaje determinado y un botón "Aceptar". Este método suspende la secuencia de comandos del servidor mientras el diálogo está abierto. La secuencia de comandos se reanuda después de que el usuario dismissed el diálogo, pero las conexiones Jdbc y los bloqueos LockService no persisten durante la suspensión. Para obtener más información, consulta la guía de diálogos y barras laterales.

// Display "Hello, world" in a dialog box with an "OK" button. The user can also
// close the dialog by clicking the close button in its title bar.
SpreadsheetApp.getUi().alert('Hello, world');

Parámetros

NombreTipoDescripción
promptStringEs el mensaje que se mostrará en el cuadro de diálogo.

Volver

Button: Es el botón en el que hizo clic el usuario.


alert(prompt, buttons)

Abre un cuadro de diálogo en el editor del usuario con el mensaje y el conjunto de botones determinados. Este método suspende la secuencia de comandos del servidor mientras el diálogo está abierto. La secuencia de comandos se reanuda después de que el usuario dismissed el diálogo, pero las conexiones Jdbc y los bloqueos LockService no persisten durante la suspensión. Para obtener más información, consulta la guía de diálogos y barras laterales.

// Display a dialog box with a message and "Yes" and "No" buttons. The user can
// also close the dialog by clicking the close button in its title bar.
const ui = SpreadsheetApp.getUi();
const response = ui.alert(
    'Are you sure you want to continue?',
    ui.ButtonSet.YES_NO,
);

// Process the user's response.
if (response === ui.Button.YES) {
  Logger.log('The user clicked "Yes."');
} else {
  Logger.log(
      'The user clicked "No" or the close button in the dialog\'s title bar.',
  );
}

Parámetros

NombreTipoDescripción
promptStringEs el mensaje que se mostrará en el cuadro de diálogo.
buttonsButtonSetEs el botón configurado para mostrarse en el cuadro de diálogo.

Volver

Button: Es el botón en el que hizo clic el usuario.


alert(title, prompt, buttons)

Abre un cuadro de diálogo en el editor del usuario con el título, el mensaje y el conjunto de botones especificados. Este método suspende la secuencia de comandos del servidor mientras el diálogo está abierto. La secuencia de comandos se reanuda después de que el usuario descarta el diálogo, pero las conexiones Jdbc y los bloqueos LockService no persisten durante la suspensión. Para obtener más información, consulta la guía de diálogos y barras laterales.

// Display a dialog box with a title, message, and "Yes" and "No" buttons. The
// user can also close the dialog by clicking the close button in its title bar.
const ui = SpreadsheetApp.getUi();
const response = ui.alert(
    'Confirm',
    'Are you sure you want to continue?',
    ui.ButtonSet.YES_NO,
);

// Process the user's response.
if (response === ui.Button.YES) {
  Logger.log('The user clicked "Yes."');
} else {
  Logger.log(
      'The user clicked "No" or the close button in the dialog\'s title bar.',
  );
}

Parámetros

NombreTipoDescripción
titleStringEs el título que se mostrará sobre el cuadro de diálogo.
promptStringEs el mensaje que se mostrará en el cuadro de diálogo.
buttonsButtonSetEs el botón configurado para mostrarse en el cuadro de diálogo.

Volver

Button: Es el botón en el que hizo clic el usuario.


createAddonMenu()

Crea un compilador que se puede usar para insertar un submenú en el menú Extensiones del editor. El menú no se actualizará hasta que se llame a Menu.addToUi(). Si la secuencia de comandos se ejecuta como un complemento, el nombre del submenú coincide con el nombre del complemento en la tienda web. Si la secuencia de comandos está vinculada directamente al documento, el nombre del submenú coincide con el nombre de la secuencia de comandos. Para obtener más información, consulta la guía de menús.

// Add an item to the Add-on menu, under a sub-menu whose name is set
// automatically.
function onOpen(e) {
  SpreadsheetApp.getUi()
      .createAddonMenu()
      .addItem('Show', 'showSidebar')
      .addToUi();
}

Volver

Menu: Es el nuevo compilador de menús.


createMenu(caption)

Crea un compilador que se puede usar para agregar un menú a la interfaz de usuario del editor. El menú no se agrega hasta que se llama a Menu.addToUi(). Para obtener más información, consulta la guía de menús. La etiqueta de un menú de nivel superior debe estar en mayúsculas de título (todas las palabras principales en mayúsculas), aunque la etiqueta de un submenú debe estar en mayúsculas de oración (solo la primera palabra en mayúscula). Si la secuencia de comandos se publica como un complemento, se ignora el parámetro caption y el menú se agrega como un submenú del menú Extensiones, equivalente a createAddonMenu().

// Add a custom menu to the active document, including a separator and a
// sub-menu.
function onOpen(e) {
  SpreadsheetApp.getUi()
      .createMenu('My Menu')
      .addItem('My menu item', 'myFunction')
      .addSeparator()
      .addSubMenu(
          SpreadsheetApp.getUi()
              .createMenu('My sub-menu')
              .addItem('One sub-menu item', 'mySecondFunction')
              .addItem('Another sub-menu item', 'myThirdFunction'),
          )
      .addToUi();
}

Parámetros

NombreTipoDescripción
captionStringEs la etiqueta del menú, con todas las palabras principales en mayúsculas para un menú de nivel superior o solo la primera palabra en mayúsculas para un submenú.

Volver

Menu: Es el nuevo compilador de menús.


prompt(prompt)

Abre un cuadro de diálogo de entrada en el editor del usuario con el mensaje determinado y un botón "Aceptar". Este método suspende la secuencia de comandos del servidor mientras el diálogo está abierto. La secuencia de comandos se reanuda después de que el usuario descarta el diálogo, pero las conexiones Jdbc y los bloqueos LockService no persisten durante la suspensión. Para obtener más información, consulta la guía de diálogos y barras laterales.

// Display a dialog box with a message, input field, and an "OK" button. The
// user can also close the dialog by clicking the close button in its title bar.
const ui = SpreadsheetApp.getUi();
const response = ui.prompt('Enter your name:');

// Process the user's response.
if (response.getSelectedButton() === ui.Button.OK) {
  Logger.log('The user\'s name is %s.', response.getResponseText());
} else {
  Logger.log('The user clicked the close button in the dialog\'s title bar.');
}

Parámetros

NombreTipoDescripción
promptStringEs el mensaje que se mostrará en el cuadro de diálogo.

Volver

PromptResponse: Es una representación de la respuesta del usuario.


prompt(prompt, buttons)

Abre un cuadro de diálogo de entrada en el editor del usuario con el mensaje y el conjunto de botones determinados. Este método suspende la secuencia de comandos del servidor mientras el diálogo está abierto. La secuencia de comandos se reanuda después de que el usuario descarta el diálogo, pero las conexiones Jdbc y los bloqueos LockService no persisten durante la suspensión. Para obtener más información, consulta la guía de diálogos y barras laterales.

// Display a dialog box with a message, input field, and "Yes" and "No" buttons.
// The user can also close the dialog by clicking the close button in its title
// bar.
const ui = SpreadsheetApp.getUi();
const response = ui.prompt('May I know your name?', ui.ButtonSet.YES_NO);

// Process the user's response.
if (response.getSelectedButton() === ui.Button.YES) {
  Logger.log('The user\'s name is %s.', response.getResponseText());
} else if (response.getSelectedButton() === ui.Button.NO) {
  Logger.log('The user didn\'t want to provide a name.');
} else {
  Logger.log('The user clicked the close button in the dialog\'s title bar.');
}

Parámetros

NombreTipoDescripción
promptStringEs el mensaje que se mostrará en el cuadro de diálogo.
buttonsButtonSetEs el botón configurado para mostrarse en el cuadro de diálogo.

Volver

PromptResponse: Es una representación de la respuesta del usuario.


prompt(title, prompt, buttons)

Abre un cuadro de diálogo de entrada en el editor del usuario con el título, el mensaje y el conjunto de botones determinados. Este método suspende la secuencia de comandos del servidor mientras el diálogo está abierto. La secuencia de comandos se reanuda después de que el usuario descarta el diálogo, pero las conexiones Jdbc y los bloqueos LockService no persisten durante la suspensión. Para obtener más información, consulta la guía de diálogos y barras laterales.

// Display a dialog box with a title, message, input field, and "Yes" and "No"
// buttons. The user can also close the dialog by clicking the close button in
// its title bar.
const ui = SpreadsheetApp.getUi();
const response = ui.prompt(
    'Getting to know you',
    'May I know your name?',
    ui.ButtonSet.YES_NO,
);

// Process the user's response.
if (response.getSelectedButton() === ui.Button.YES) {
  Logger.log('The user\'s name is %s.', response.getResponseText());
} else if (response.getSelectedButton() === ui.Button.NO) {
  Logger.log('The user didn\'t want to provide a name.');
} else {
  Logger.log('The user clicked the close button in the dialog\'s title bar.');
}

Parámetros

NombreTipoDescripción
titleStringEs el título que se mostrará sobre el cuadro de diálogo.
promptStringEs el mensaje que se mostrará en el cuadro de diálogo.
buttonsButtonSetEs el botón configurado para mostrarse en el cuadro de diálogo.

Volver

PromptResponse: Es una representación de la respuesta del usuario.


showModalDialog(userInterface, title)

Abre un cuadro de diálogo modal en el editor del usuario con contenido personalizado del cliente. Este método no suspende la secuencia de comandos del servidor mientras el diálogo está abierto. Para comunicarse con la secuencia de comandos del servidor, el componente del cliente debe realizar devoluciones de llamada asíncronas con la API de google.script para HtmlService. Para cerrar el diálogo de forma programática, llama a google.script.host.close() en el lado del cliente de una app web de HtmlService. Para obtener más información, consulta la guía de diálogos y barras laterales.

Los diálogos modales impiden que el usuario interactúe con algo que no sea el diálogo. En cambio, los diálogos sin modo y las barras laterales permiten que el usuario interactúe con el editor. En casi todos los casos, un diálogo modal o una barra lateral son una mejor opción que un diálogo sin modo.

// Display a modal dialog box with custom HtmlService content.
const htmlOutput = HtmlService
                       .createHtmlOutput(
                           '<p>A change of speed, a change of style...</p>',
                           )
                       .setWidth(250)
                       .setHeight(300);
SpreadsheetApp.getUi().showModalDialog(htmlOutput, 'My add-on');

Parámetros

NombreTipoDescripción
userInterfaceObjectUn HtmlOutput que representa la interfaz que se mostrará.
titleStringEs el título del diálogo. Anula cualquier título establecido llamando a setTitle() en el objeto userInterface.

Autorización

Las secuencias de comandos que usan este método requieren autorización con uno o más de los siguientes ámbitos:

  • https://www.googleapis.com/auth/script.container.ui

showModelessDialog(userInterface, title)

Abre un cuadro de diálogo sin modo en el editor del usuario con contenido personalizado del cliente. Este método no suspende la secuencia de comandos del servidor mientras el diálogo está abierto. Para comunicarse con la secuencia de comandos del servidor, el componente del cliente debe realizar devoluciones de llamada asíncronas con la API de google.script para HtmlService. Para cerrar el diálogo de forma programática, llama a google.script.host.close() en el lado del cliente de una app web de HtmlService. Para obtener más información, consulta la guía de diálogos y barras laterales.

Los diálogos sin modo permiten que el usuario interactúe con el editor detrás del diálogo. En cambio, los diálogos modales no lo hacen. En casi todos los casos, un diálogo modal o una barra lateral son mejores opciones que un diálogo sin modo.

// Display a modeless dialog box with custom HtmlService content.
const htmlOutput = HtmlService
                       .createHtmlOutput(
                           '<p>A change of speed, a change of style...</p>',
                           )
                       .setWidth(250)
                       .setHeight(300);
SpreadsheetApp.getUi().showModelessDialog(htmlOutput, 'My add-on');

Parámetros

NombreTipoDescripción
userInterfaceObjectUn HtmlOutput que representa la interfaz que se mostrará.
titleStringEs el título del diálogo. Anula cualquier título establecido llamando a setTitle() en el objeto userInterface.

Autorización

Las secuencias de comandos que usan este método requieren autorización con uno o más de los siguientes ámbitos:

  • https://www.googleapis.com/auth/script.container.ui

showSidebar(userInterface)

Abre una barra lateral en el editor del usuario con contenido personalizado del cliente. Este método no suspende la secuencia de comandos del servidor mientras la barra lateral está abierta. Para comunicarse con la secuencia de comandos del servidor, el componente del cliente debe realizar devoluciones de llamada asíncronas con la API de google.script para HtmlService. Para cerrar la barra lateral de forma programática, llama a google.script.host.close() en el lado del cliente de una app web HtmlService. Para obtener más información, consulta la guía de diálogos y barras laterales.

La barra lateral se muestra en el lado derecho del editor para los usuarios cuyos entornos usan un idioma de izquierda a derecha y en el lado izquierdo del editor para los idiomas de derecha a izquierda. Todas las barras laterales que muestran las secuencias de comandos tienen un ancho de 300 píxeles.

// Display a sidebar with custom HtmlService content.
const htmlOutput = HtmlService
                       .createHtmlOutput(
                           '<p>A change of speed, a change of style...</p>',
                           )
                       .setTitle('My add-on');
SpreadsheetApp.getUi().showSidebar(htmlOutput);

Parámetros

NombreTipoDescripción
userInterfaceObjectUn HtmlOutput que representa la interfaz que se mostrará.

Autorización

Las secuencias de comandos que usan este método requieren autorización con uno o más de los siguientes ámbitos:

  • https://www.googleapis.com/auth/script.container.ui

Métodos obsoletos