Как из GAS открыть спредшит в новой вкладке Хрома и перейти в нее?

Собственно вопрос в названии темы. Пробовал вот так , но не получилось:

SpreadsheetApp.openById(OrderSpreadSheet);

Так он открывает файл на сервере, а как в браузере?


Ответы (2 шт):

Автор решения: Максим Стоянов

Это делается через вызов модального окна в котором встрен скрипт для автоматического открытия новой вкладки.

  1. Создаете html-файл

Примерно такой:

<html>
<body>
<p>Через <span id="timeout"></span> секунд Вы будете автоматически перенаправлены на страницу <span><?!= url ?></span>. Если этого не произошло, нажмите <a id="url" href="<?!= url ?>" target="_blank">здесь</a>.</p>
  
  <script>
  {
    let timeout = 5;
    const url = document.getElementById('url').getAttribute('href');
    const el_timeout = document.getElementById('timeout');
    
    (function tic () {
      timeout--;
    
      el_timeout.innerHTML = timeout;
      
      if ( timeout > 0 ) {
        setTimeout(tic, 1000);
      } else {
        window.open(url, "_blank");
        
        google.script.host.close();
      }
    })();
  }
</script>
</body>
<html>

  1. Создаете глобальную переменную

    const url = "тут ваш url";

  2. Создайте функцию которая создаст диалоговое окно из html-файла.

function redirect() {
  let html = HtmlService
  .createTemplateFromFile("index.html")
  .evaluate();
  
  SpreadsheetApp.getUi().showModalDialog(html, "redirect");
}

  1. Вызовите функцию redirect из меню или по клику на кнопку.

stomaks.me g-apps-script.com

→ Ссылка
Автор решения: Sturmer

Максим спасибо! Вы помогли найти ответ. Но я сделал немного по-другому. Основная проблема передать URL из GAS в HTML. Через "глобальную" переменную не получилось.

GAS:

 function redirect(SSurl) {   // функция открытия страниц по URL
        let html = HtmlService.createTemplateFromFile("redirect.html");  
        html.SSurl = SSurl;  // передаем URL GS-файла в HTML
        var htmlOutput = html.evaluate();    
        SpreadsheetApp.getUi().showModalDialog(htmlOutput,'Вы будете перемещены');
 }

HTML:

    <!DOCTYPE html>
<html>
<body>
  <script>     
     var SSurl = <?= SSurl ?> ;  // получаем URL GS-файла из GAS    
     window.open(SSurl,"_blank"); // открываем GS-файл в новой вкладке браузера
     google.script.host.close(); // закрываем модальное окно - это    
   </script>
</body>
<html>
→ Ссылка