Импортируйте данные листа во включаемый файл с помощью скриптов Google Apps в Google Sheets - PullRequest
0 голосов
/ 24 апреля 2020

В Google Sheets у меня есть макет, созданный с помощью HtmlService из Google Apps Script (см. MasterPage. html, ниже).

<!DOCTYPE html>
<html>
<head>
  <base target="_top">
  <? var serverData = getServerData(); ?>
</head>

<body>
  <h2>Page begin.</h2>
  <p>Data A from server: <?= serverData[0] ?></p>
  <?!= HtmlService.createHtmlOutputFromFile('includedPage').getContent(); ?>
  <p>Page end.</p>
</body>
</html>

Этот макет вызывает HTML из второго макета с именем includesPage. html.

<? var serverData = getServerData(); ?>
<div>
  <p>Data B from server: <?= serverData[1] ?></p>
</div>

Я могу использовать скрипт GAS для получения данных ( "Данные A с сервера" ) с сервера / листа и на главную страницу.

Однако тот же скриптлет не работает при размещении на включенной странице. Код просто отображается как HTML, а «Данные B с сервера» не отображаются.

Есть ли способ импортировать сервер / лист на страницу включения до вставки страницы включения на главную страницу?

Любая помощь приветствуется.

Примечание: следующие вопросы относятся, но не отвечают на мой вопрос:

1 Ответ

1 голос
/ 24 апреля 2020

Скриплеты Apps Script проверяются только один раз, в начале выполнения скрипта

В вашем случае имеет смысл использовать google.script.run, который позволяет вызывать функцию скрипта Apps. со стороны клиента (html файл)

Пример:

includedPage

<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
  </head>
  <body>
    <div id="data"></div>
    <script>
    google.script.run.withSuccessHandler(updateDiv).withUserObject(this).getServerData();
    function updateDiv(returnValue){
      document.getElementById("data").innerHTML="<p>"+ returnValue +"</p>"
    }
    </script>
  </body>
</html>

Code.gs

function getServerData() {
  var serverData = [1, 2, 3, 4, 5];
  return serverData[1];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...