Class 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.
var ui = SpreadsheetApp.getUi();
var 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 Перечисление, представляющее предопределенные локализованные кнопки диалога, возвращенные предупреждением или PromptResponse.getSelectedButton() , чтобы указать, какую кнопку в диалоге щелкнул пользователь.
ButtonSet ButtonSet Перечисление, представляющее предопределенные локализованные наборы одной или нескольких диалоговых кнопок, которые можно добавить к предупреждению или подсказке .

Методы

Метод Тип возврата Краткое описание
alert(prompt) Button Открывает диалоговое окно в пользовательском редакторе с заданным сообщением и кнопкой «ОК».
alert(prompt, buttons) Button Открывает диалоговое окно в пользовательском редакторе с заданным сообщением и набором кнопок.
alert(title, prompt, buttons) Button Открывает диалоговое окно в пользовательском редакторе с заданным заголовком, сообщением и набором кнопок.
createAddonMenu() Menu Создает построитель, который можно использовать для вставки подменю в меню дополнений редактора.
createMenu(caption) Menu Создает построитель, который можно использовать для добавления меню в пользовательский интерфейс редактора.
prompt(prompt) PromptResponse Открывает диалоговое окно ввода в пользовательском редакторе с заданным сообщением и кнопкой «ОК».
prompt(prompt, buttons) PromptResponse Открывает диалоговое окно ввода в пользовательском редакторе с заданным сообщением и набором кнопок.
prompt(title, prompt, buttons) PromptResponse Открывает диалоговое окно ввода в пользовательском редакторе с заданным заголовком, сообщением и набором кнопок.
showModalDialog(userInterface, title) void Открывает модальное диалоговое окно в пользовательском редакторе с пользовательским содержимым на стороне клиента.
showModelessDialog(userInterface, title) void Открывает немодальное диалоговое окно в пользовательском редакторе с пользовательским содержимым на стороне клиента.
showSidebar(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.
var ui = SpreadsheetApp.getUi();
var 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 ButtonSet Кнопка настроена для отображения в диалоговом окне.

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

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.
var ui = SpreadsheetApp.getUi();
var 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 ButtonSet Кнопка настроена для отображения в диалоговом окне.

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

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.
var ui = SpreadsheetApp.getUi();
var 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.
var ui = SpreadsheetApp.getUi();
var 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 ButtonSet Кнопка настроена для отображения в диалоговом окне.

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

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.
var ui = SpreadsheetApp.getUi();
var 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 ButtonSet Кнопка настроена для отображения в диалоговом окне.

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

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


showModalDialog(userInterface, title)

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

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

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

Параметры

Имя Тип Описание
userInterface Object HtmlOutput представляющий отображаемый интерфейс.
title String Название диалога; переопределяет любой набор заголовков, вызывая setTitle() для объекта userInterface .

Авторизация

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

  • 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.
var htmlOutput = HtmlService
    .createHtmlOutput('<p>A change of speed, a change of style...</p>')
    .setWidth(250)
    .setHeight(300);
SpreadsheetApp.getUi().showModelessDialog(htmlOutput, 'My add-on');

Параметры

Имя Тип Описание
userInterface Object HtmlOutput представляющий отображаемый интерфейс.
title String Название диалога; переопределяет любой набор заголовков, вызывая setTitle() для объекта userInterface .

Авторизация

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

  • 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.
var htmlOutput = HtmlService
    .createHtmlOutput('<p>A change of speed, a change of style...</p>')
    .setTitle('My add-on');
SpreadsheetApp.getUi().showSidebar(htmlOutput);

Параметры

Имя Тип Описание
userInterface Object HtmlOutput представляющий отображаемый интерфейс.

Авторизация

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

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

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