пользовательское меню в электронной таблице Google - PullRequest
0 голосов
/ 10 декабря 2018

Нужна помощь специалиста, можем ли мы запустить функцию прямо из меню, вместо подменю, при двойном щелчке не работает.и я хотел бы закрыть диалоговое окно после начала загрузки, и можем ли мы удалить лист после его загрузки?:

SpreadsheetApp.getActive().deleteSheet(.getSheetId(sID));

function onOpen(e) {
  SpreadsheetApp.getUi()
      .createMenu('Download')
      .addItem('Download', 'Download')
      .addToUi();
}           
function Download() {           
  var ssID = SpreadsheetApp.getActive().getId();
  var sID = SpreadsheetApp.getActive().getSheetId();            
  var URL = 'https://docs.google.com/spreadsheets/d/'+ssID+'/export?format=pdf&gid='+sID;

  var htmlOutput = HtmlService          
                  .createHtmlOutput('<a href="'+URL+'">Click to download</a>')
                  .setSandboxMode(HtmlService.SandboxMode.IFRAME)
                  .setWidth(160)
                  .setHeight(60);
  SpreadsheetApp.getUi().showModalDialog(htmlOutput, 'Download');
}

1 Ответ

0 голосов
/ 10 декабря 2018

Если вы имеете в виду меню самого верхнего уровня, то ответ будет отрицательным.

Вы можете удалить лист, но сначала вам нужно будет поместить электронную таблицу в корзину.Хотя я думаю, что администраторы GSuite могут получить разрешение на удаление файла.Я не знаю, я никогда не беспокоился об этом.

Вы можете закрыть диалоговое окно с помощью google.script.host.close() Ссылка

<a href="http://example.com" target="_blank" onClick="google.script.host.close();">Click Me</a>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...