Class Ui

Ui

Экземпляр пользовательского интерфейса для приложения Google, позволяющий скрипту добавлять такие функции, как меню, диалоги и боковые панели. Скрипт может взаимодействовать с пользовательским интерфейсом только для текущего открытого экземпляра редактора и только в том случае, если скрипт привязан к этому редактору.

// 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.');
}

Характеристики

Свойство Тип Описание
Button Button Перечисление, представляющее собой заранее определенные локализованные кнопки диалогового окна, возвращаемые всплывающим окном или Prompt Response.getSelectedButton() , указывающее, на какую кнопку в диалоговом окне нажал пользователь.
Button Set Button Set Перечисление, представляющее собой заранее определенные локализованные наборы из одной или нескольких кнопок диалогового окна, которые можно добавить в оповещение или подсказку .

Методы

Метод Тип возвращаемого значения Краткое описание
alert(prompt) Button Открывает диалоговое окно в редакторе пользователя с заданным сообщением и кнопкой «ОК».
alert(prompt, buttons) Button Открывает диалоговое окно в редакторе пользователя с заданным сообщением и набором кнопок.
alert(title, prompt, buttons) Button Открывает диалоговое окно в редакторе пользователя с заданным заголовком, сообщением и набором кнопок.
create Addon Menu() Menu Создает конструктор, который можно использовать для вставки подменю в меню расширений редактора.
create Menu(caption) Menu Создает конструктор, который можно использовать для добавления меню в пользовательский интерфейс редактора.
prompt(prompt) Prompt Response Открывает диалоговое окно ввода в редакторе пользователя с заданным сообщением и кнопкой «ОК».
prompt(prompt, buttons) Prompt Response Открывает диалоговое окно ввода в редакторе пользователя с заданным сообщением и набором кнопок.
prompt(title, prompt, buttons) Prompt Response Открывает диалоговое окно ввода в редакторе пользователя с заданным заголовком, сообщением и набором кнопок.
show Modal Dialog(userInterface, title) void Открывает модальное диалоговое окно в редакторе пользователя с пользовательским содержимым, созданным на стороне клиента.
show Modeless Dialog(userInterface, title) void Открывает немодальное диалоговое окно в редакторе пользователя с пользовательским содержимым на стороне клиента.
show Sidebar(userInterface) void Открывает боковую панель в редакторе пользователя с пользовательским контентом, созданным на стороне клиента.

Подробная документация

alert(prompt)

Открывает диалоговое окно в редакторе пользователя с заданным сообщением и кнопкой «ОК». Этот метод приостанавливает выполнение серверного скрипта на время работы диалогового окна. Выполнение скрипта возобновляется после закрытия диалогового окна пользователем, но соединения Jdbc и блокировки LockService не сохраняются после приостановки. Для получения дополнительной информации см. руководство по диалоговым окнам и боковым панелям .

// 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');

Параметры

Имя Тип Описание
prompt String Сообщение, которое будет отображено в диалоговом окне.

Возвращаться

Button — кнопка, на которую нажал пользователь.


alert(prompt, buttons)

Открывает диалоговое окно в редакторе пользователя с заданным сообщением и набором кнопок. Этот метод приостанавливает выполнение серверного скрипта на время работы диалогового окна. Выполнение скрипта возобновляется после закрытия диалогового окна пользователем, но соединения Jdbc и блокировки LockService не сохраняются после приостановки. Для получения дополнительной информации см. руководство по диалоговым окнам и боковым панелям .

// 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.',
  );
}

Параметры

Имя Тип Описание
prompt String Сообщение, которое будет отображено в диалоговом окне.
buttons Button Set Кнопка, предназначенная для отображения в диалоговом окне.

Возвращаться

Button — кнопка, на которую нажал пользователь.


alert(title, prompt, buttons)

Открывает диалоговое окно в редакторе пользователя с заданным заголовком, сообщением и набором кнопок. Этот метод приостанавливает выполнение серверного скрипта на время работы диалогового окна. Выполнение скрипта возобновляется после закрытия диалогового окна пользователем, но соединения Jdbc и блокировки LockService не сохраняются после приостановки. Для получения дополнительной информации см. руководство по диалоговым окнам и боковым панелям .

// 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.',
  );
}

Параметры

Имя Тип Описание
title String Заголовок, отображаемый над диалоговым окном.
prompt String Сообщение, которое будет отображено в диалоговом окне.
buttons Button Set Кнопка, предназначенная для отображения в диалоговом окне.

Возвращаться

Button — кнопка, на которую нажал пользователь.


createAddonMenu()

Создает конструктор, который можно использовать для вставки подменю в меню расширений редактора. Меню фактически не будет обновляться до вызова метода Menu.addToUi() . Если скрипт работает как надстройка, имя подменю совпадает с именем надстройки в веб-магазине; если скрипт привязан к документу напрямую, имя подменю совпадает с именем скрипта. Для получения дополнительной информации см. руководство по меню .

// 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();
}

Возвращаться

Menu — Новый конструктор меню.


createMenu(caption)

Создает конструктор, который можно использовать для добавления меню в пользовательский интерфейс редактора. Меню фактически не будет добавлено до вызова Menu.addToUi() . Для получения дополнительной информации см. руководство по меню . Метка для меню верхнего уровня должна быть написана с заглавной буквы (все основные слова должны быть написаны с заглавной буквы), хотя метка для подменю должна быть написана с заглавной буквы (только первое слово должно быть написано с заглавной буквы). Если скрипт опубликован как дополнение , параметр caption игнорируется, и меню добавляется как подменю меню «Расширения», что эквивалентно методу 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();
}

Параметры

Имя Тип Описание
caption String Заголовок меню: для меню верхнего уровня все основные слова пишутся с заглавной буквы, для подменю — только первое слово.

Возвращаться

Menu — Новый конструктор меню.


prompt(prompt)

Открывает диалоговое окно ввода в редакторе пользователя с заданным сообщением и кнопкой «ОК». Этот метод приостанавливает выполнение серверного скрипта на время работы диалогового окна. Выполнение скрипта возобновляется после закрытия диалогового окна пользователем, но соединения Jdbc и блокировки LockService не сохраняются после приостановки. Для получения дополнительной информации см. руководство по диалоговым окнам и боковым панелям .

// 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.');
}

Параметры

Имя Тип Описание
prompt String Сообщение, которое будет отображено в диалоговом окне.

Возвращаться

PromptResponse — представление ответа пользователя.


prompt(prompt, buttons)

Открывает диалоговое окно ввода в редакторе пользователя с заданным сообщением и набором кнопок. Этот метод приостанавливает выполнение серверного скрипта на время работы диалогового окна. Выполнение скрипта возобновляется после закрытия диалогового окна пользователем, но соединения Jdbc и блокировки LockService не сохраняются после приостановки. Для получения дополнительной информации см. руководство по диалоговым окнам и боковым панелям .

// 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.');
}

Параметры

Имя Тип Описание
prompt String Сообщение, которое будет отображено в диалоговом окне.
buttons Button Set Кнопка, предназначенная для отображения в диалоговом окне.

Возвращаться

PromptResponse — представление ответа пользователя.


prompt(title, prompt, buttons)

Открывает диалоговое окно ввода в редакторе пользователя с заданным заголовком, сообщением и набором кнопок. Этот метод приостанавливает выполнение серверного скрипта на время работы диалогового окна. Выполнение скрипта возобновляется после закрытия диалогового окна пользователем, но соединения Jdbc и блокировки LockService не сохраняются после приостановки. Для получения дополнительной информации см. руководство по диалоговым окнам и боковым панелям .

// 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.');
}

Параметры

Имя Тип Описание
title String Заголовок, отображаемый над диалоговым окном.
prompt String Сообщение, которое будет отображено в диалоговом окне.
buttons Button Set Кнопка, предназначенная для отображения в диалоговом окне.

Возвращаться

PromptResponse — представление ответа пользователя.


showModalDialog(userInterface, title)

Открывает модальное диалоговое окно в редакторе пользователя с пользовательским содержимым на стороне клиента. Этот метод не приостанавливает выполнение серверного скрипта, пока диалоговое окно открыто. Для взаимодействия с серверным скриптом клиентский компонент должен выполнять асинхронные обратные вызовы, используя API google.script для HtmlService . Чтобы закрыть диалоговое окно программно, вызовите google.script.host.close() на стороне клиента веб-приложения HtmlService . Для получения дополнительной информации см. руководство по диалоговым окнам и боковым панелям .

Модальные диалоговые окна не позволяют пользователю взаимодействовать ни с чем, кроме самого диалога. В отличие от них, немодальные диалоговые окна и боковые панели позволяют пользователю взаимодействовать с редактором. Практически во всех случаях модальное диалоговое окно или боковая панель являются лучшим выбором, чем немодальное диалоговое окно.

// 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');

Параметры

Имя Тип Описание
user Interface Object Html Output , представляющий собой интерфейс для отображения.
title String Заголовок диалогового окна переопределяет любой заголовок, установленный путем вызова set Title() для объекта user Interface .

Авторизация

Для скриптов, использующих этот метод, требуется авторизация в одной или нескольких из следующих областей действия :

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

showModelessDialog(userInterface, title)

Открывает немодальное диалоговое окно в редакторе пользователя с пользовательским содержимым на стороне клиента. Этот метод не приостанавливает выполнение серверного скрипта, пока диалоговое окно открыто. Для взаимодействия с серверным скриптом клиентский компонент должен выполнять асинхронные обратные вызовы, используя API google.script для HtmlService . Чтобы закрыть диалоговое окно программно, вызовите google.script.host.close() на стороне клиента веб-приложения HtmlService . Для получения дополнительной информации см. руководство по диалоговым окнам и боковым панелям .

Немодальные диалоги позволяют пользователю взаимодействовать с редактором, скрытым за диалогом. Модальные диалоги , напротив, этого не делают. Практически во всех случаях модальный диалог или боковая панель являются лучшим выбором, чем немодальный диалог.

// 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');

Параметры

Имя Тип Описание
user Interface Object Html Output , представляющий собой интерфейс для отображения.
title String Заголовок диалогового окна переопределяет любой заголовок, установленный путем вызова set Title() для объекта user Interface .

Авторизация

Для скриптов, использующих этот метод, требуется авторизация в одной или нескольких из следующих областей действия :

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

showSidebar(userInterface)

Открывает боковую панель в редакторе пользователя с пользовательским контентом на стороне клиента. Этот метод не приостанавливает выполнение серверного скрипта, пока боковая панель открыта. Для взаимодействия с серверным скриптом клиентский компонент должен выполнять асинхронные обратные вызовы, используя API google.script для HtmlService . Чтобы закрыть боковую панель программно, вызовите google.script.host.close() на стороне клиента веб-приложения HtmlService . Для получения дополнительной информации см. руководство по диалоговым окнам и боковым панелям .

Боковая панель отображается справа от редактора для пользователей, использующих языки с письмом слева направо, и слева от редактора для языков с письмом справа налево. Все боковые панели, отображаемые скриптами, имеют ширину 300 пикселей.

// 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);

Параметры

Имя Тип Описание
user Interface Object Html Output , представляющий собой интерфейс для отображения.

Авторизация

Для скриптов, использующих этот метод, требуется авторизация в одной или нескольких из следующих областей действия :

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

Устаревшие методы