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.
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 и Lock Service не сохраняются во время приостановки. Дополнительную информацию см. в руководстве по диалоговым окнам и боковым панелям .

// 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 и Lock Service не сохраняются во время приостановки. Дополнительную информацию см. в руководстве по диалоговым окнам и боковым панелям .

// 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 и Lock Service не сохраняются во время приостановки. Дополнительную информацию см. в руководстве по диалоговым окнам и боковым панелям .

// 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 — кнопка, нажатая пользователем.


create Addon Menu()

Создает конструктор, который можно использовать для вставки подменю в меню «Расширения» редактора. Меню фактически не обновляется до тех пор, пока не будет вызван 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 — новый конструктор меню.


create Menu(caption)

Создает конструктор, который можно использовать для добавления меню в пользовательский интерфейс редактора. На самом деле меню не добавляется до тех пор, пока не будет вызван Menu.addToUi() . Дополнительную информацию см. в руководстве по меню . Метка меню верхнего уровня должна быть написана в заголовке (все основные слова пишутся с заглавной буквы), а метка подменю должна быть в регистре предложений (только первое слово пишется с заглавной буквы). Если скрипт опубликован как надстройка , параметр caption игнорируется и меню добавляется как подменю меню «Расширения», что эквивалентно create Addon Menu() .

// 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 и Lock Service не сохраняются во время приостановки. Дополнительную информацию см. в руководстве по диалоговым окнам и боковым панелям .

// 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 Сообщение, отображаемое в диалоговом окне.

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

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


prompt(prompt, buttons)

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

// 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 Кнопка настроена для отображения в диалоговом окне.

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

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


prompt(title, prompt, buttons)

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

// 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 Кнопка настроена для отображения в диалоговом окне.

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

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


show Modal Dialog(userInterface, title)

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

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

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

show Modeless Dialog(userInterface, title)

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

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

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

show Sidebar(userInterface)

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

Боковая панель отображается в правой части редактора для пользователей, в средах которых используется язык с письмом слева направо, и в левой части редактора для языков с письмом справа налево. Все боковые панели, отображаемые скриптами, имеют ширину 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

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