Нулевое значение, возвращаемое в веб-приложение Apps Script для определенной электронной таблицы с помощью функции сервера - PullRequest
0 голосов
/ 22 мая 2018

Я пытаюсь вернуть данные в электронной таблице в скрипт приложений, опубликованный как веб-приложение.Однако для одной из моих электронных таблиц ( ссылка ) возвращенные данные равны null.Я зарегистрировал данные перед возвратом, чтобы убедиться, что они не равны нулю, и я вижу их в журналах.

Это мой код:

function doGet(){
  return HtmlService.createHtmlOutputFromFile('index');
}

function spreadsheetTest() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName("Sheet1");
  var maxRows = sheet.getMaxRows();
  var data = sheet.getSheetValues(1, 1, maxRows, 10);
  Logger.log(data)
  return data;
}
<html>
<button type="button" onclick="clcked();">Click Me!</button>
<div id="Message"></div>

<script>
  function clcked(){
    google.script.run
      .withSuccessHandler(function(response) {
        console.log(response);
      })
      .spreadsheetTest();
  }
</script>
</html>

Любая помощь будет принята с благодарностью.:)

1 Ответ

0 голосов
/ 22 мая 2018

Я когда-либо сталкивался с такой же проблемой раньше.Когда значения с форматом даты включаются в data, который получается getSheetValues(), возвращаемые значения становятся нулевыми.Я думал, что проблема может возникнуть, когда значения даты анализируются и / или конвертируются, когда значения отправляются из GAS в Javascript.При этом возвращается ноль.Чтобы избежать этого, я думаю, что есть две модели для вашей ситуации.Пожалуйста, выберите один из них для вашей ситуации.

Шаблон 1

Для функции spreadsheetTest() измените следующим образом.

С:
return data;
Кому:
return JSON.stringify(data);

Шаблон 2

Для функции spreadsheetTest() измените ее следующим образом.

С:
var data = sheet.getSheetValues(1, 1, maxRows, 10);
Кому:
var data = sheet.getRange(1, 1, maxRows, 10).getDisplayValues();

Если это не подходит для вашей ситуации, извините.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...