Как я могу скопировать лист с помощью скрипта приложений в приложении Google Sheets, когда оно открывает электронную таблицу? - PullRequest
1 голос
/ 18 июня 2020

У меня есть настраиваемая функция, которая дублирует лист в электронной таблице и переименовывает ее. Я попытался использовать триггер onOpen, но он не работал в приложении Google Sheets (android). Я также пытался создать веб-приложение, чтобы сделать это в приложении, но оно тоже не работает. Вот функция:

function doGet() {
return HtmlService.createHtmlOutputFromFile("index.html")
    .setSandboxMode(HtmlService.SandboxMode.IFRAME);
}

function onOpen() {

var activeSSheet = SpreadsheetApp.getActiveSpreadsheet();
var sheet = activeSheet.getSheetByName('Sheet0');

sheet.copyTo(activeSSheet).setName('Sheet1').activate();
//duplicate.setName('Sheet1');
}

И код HTML:

<!DOCTYPE html>
<html>

<head>
    <base target="_top">
    <script>
        function redirect() {
            window.open("SPREADSHEETLINK","SPREADSHEETNAME");
        google.script.run.onOpen();
    }
    </script>
</head>
<body onload="redirect()">
</body>
</html>

Я взял этот код на inte rnet и изменил его. Он работает на P C, но на моем телефоне не работает. Я не знаю, связано ли это с ограничением в самом приложении или с чем-то еще. Я новичок в программировании, так что немного застрял.

1 Ответ

0 голосов
/ 18 июня 2020

У вас есть опечатка в var sheet = activeSheet.getSheetByName('Sheet0');, это должно быть activeSSheet , а также убедитесь, что у вас есть «Sheet0», иначе копировать нечего.

Если это на месте , вы go без необходимости звонить onOpen() с клиента.

Как:

function redirect() {
  window.open("SPREADSHEETLINK","SPREADSHEETNAME");
  // google.script.run.onOpen();
}
...