1

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

function myFunction() { 
    var file = DriveApp.getFileById("<template doc id goes here>"); 
    var folder = DriveApp.getFolderById("<folder where new file will go>"); 
    var newfile = "<newly created file name goes here>"; 

    file.makeCopy(newfile, folder); 
} 

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

ответ

0

Если вы используете HTML-сервис для оригинальной кнопки, вы можете просто добавить функцию window.open.

<script> 
    function openTheUrl() { 
    window.open("http://www.stackoverflow.com"); 
    }; 
</script> 

URL-адрес в новый документ может быть возвращен с getUrl() метода класса File:

Google Documentation - getUrl()

Есть несколько шагов к этому процессу.

  • Вызов Apps Script gs функция google.script.run в HTML
  • Google на стороне сервера код создает новый документ и возвращает значение
  • OnSuccess функция обратного вызова открывает новый документ
  • тег

HTML Script для вызова кода сценария приложений и определения функции успеха:

<script> 

    window.callServerCode = function() { 
    google.script.run 
    .withSuccessHandler(openTheUrl) 
    .myFunction(); 
    } 

    function openTheUrl(argNewUrl) { 
    Logger.log('argNewUrl: ' + argNewUrl); 
    window.open(argNewUrl); 
    }; 
</script> 

код Служб Скрипт должен возвращать значение:

function myFunction() { 
    var file = DriveApp.getFileById("<template doc id goes here>"); 
    var folder = DriveApp.getFolderById("<folder where new file will go>"); 
    var newfile = "<newly created file name goes here>"; 

    var newFile = file.makeCopy(newfile, folder); 
    var newDocURL = newFile.getUrl(); 

    return newDocURL; 
} 

google.script.run withSuccessHandler функция автоматически получает возвращаемое значение.

0

Как уже упоминалось в этом вопросе How to open a URL link from JavaScript inside a Google Apps Script HTML Google Site Gadget вызов window.open не будет работать из-за саханизации caja.

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