Как: опубликовать надстройку Google Sheets script в частном порядке в моем домене

avatar
dak
8 августа 2021 в 22:49
224
1
0

Опубликовать надстройку
SDK Google Workspace Marketplace

  1. Конфигурация приложения
    Идентификатор развертывания:
    Идентификатор сценария надстройки для работы с таблицами:
    Версия скрипта надстройки Таблиц:
  2. Список магазинов
    Опубликовать

Код.gs

// Can’t call SpreadsheetApp.getUi()  
// as a Global when the add-on is installed but not enabled.
// SpreadsheetApp is initialized when it is called in a function
var ui = function(){
  return SpreadsheetApp.getUi()}

function onOpen() {
  ui()
    .createAddonMenu()
    .addItem('Prepare sheet...', 'prepareSheet_')
    .addItem('Generate step-by-step...', 'generateStepByStep_') 
    .addToUi();
}

/**
 * A function that adds headers and some initial data to the spreadsheet.
 */
function prepareSheet_() {}

/**
 * Creates a new sheet containing step-by-step directions between the two
 * addresses on the "Settings" sheet that the user selected.
 */
function generateStepByStep_() {}

Источник
Lle.4
8 августа 2021 в 23:14
1

Вам нужно сделать меню пользовательского интерфейса; попробуйте SpreadsheetApp.getUi().createAddonMenu задокументировано здесь: developers.google.com/apps-script/reference/base/…

dak
9 августа 2021 в 01:16
0

Я отредактировал свой вопрос в соответствии с вашим комментарием и повторно опубликовал, но все еще имею это меню: «Дополнения»> «Направления»> «Справка».

Lle.4
9 августа 2021 в 02:30
0

А, я понимаю, что вы сейчас говорите. К сожалению, при публикации надстройки функция createAddonMenu будет создавать меню только в меню надстроек, а не в каждой отдельной электронной таблице в виде реального меню Google Sheets, например «Файл», «Редактировать» и т. д. Вы можете попробовать использовать <SpreadsheetApp.getUi().createMenu. > задокументировано здесь: developers.google.com/apps-script/reference/base/…, но я не могу обещать, что это сработает.

dak
9 августа 2021 в 22:32
0

Я отредактировал свой вопрос с инструкциями по публикации надстройки. SpreadsheetApp.getUi().createAddonMenu — правильный ответ. У меня были другие проблемы, связанные с тем, что я не обновлял Sheets Add-on Script version перед публикацией.

Lle.4
10 августа 2021 в 03:58
0

Большой! Было бы здорово, если бы вы могли проголосовать за мой комментарий в этом случае :) спасибо и рад, что смог помочь.

Ответы (1)

avatar
ziganotschka
9 августа 2021 в 07:34
0

Вам нужно использовать метод addSubMenu(меню)

См. также Пользовательские меню в Google Workspace.

Образец:

function onOpen() {
  var ui = SpreadsheetApp.getUi()
  ui
  .createAddonMenu()
  .addSubMenu(ui.createMenu('Prepare sheet...')
              .addSubMenu(ui.createMenu('Generate step-by-step...')
                          .addItem("Help", 'generateHelp_')))
  .addToUi();
}

enter image description here

Примечание:

Когда вы публикуете надстройку, Google добавит дополнительное меню по умолчанию Help в меню надстройки в дополнение к вашему меню справки, которое вложено в Generate step-by-step....

ziganotschka
10 августа 2021 в 06:59
0

Привет @дак! Я не вижу комментарий, который вы оставили ранее, но чтобы ответить на ваш вопрос о том, как иметь ваше меню отдельно, а не в меню надстройки - к сожалению, это невозможно при публикации надстройки, ваше меню всегда будет встроено внутри Add-ons. Я вижу, вы существенно изменили содержание своего вопроса, так что мой ответ уже не имеет смысла. В целях наглядности, согласно Stackoverflow, в следующий раз будет менее запутанно, если вы опубликуете новый вопрос.