通过服务器功能将空值返回给Apps Script webapp以获取某个电子表格

问题描述 投票:1回答:1

我正在尝试将电子表格中的数据返回到作为webApp发布的Apps脚本。但是,对于我的一个电子表格(link),返回的数据是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>

任何帮助将受到高度赞赏。 :)

html google-apps-script
1个回答
1
投票

我之前遇到过同样的问题。当具有日期格式的值包含在由data检索的getSheetValues()中时,返回的值变为null。我认为当值从GAS发送到Javascript时,解析和/或转换日期值时可能会发生此问题。这样,返回null。为了避免这种情况,我认为您的情况有两种模式。请根据您的情况选择其中一个。

Pattern 1

对于函数spreadsheetTest(),修改如下。

From :
return data;
To :
return JSON.stringify(data);

Pattern 2

对于函数spreadsheetTest(),修改如下。

From :
var data = sheet.getSheetValues(1, 1, maxRows, 10);
To :
var data = sheet.getRange(1, 1, maxRows, 10).getDisplayValues();

如果这些对你的情况没用,我很抱歉。

© www.soinside.com 2019 - 2024. All rights reserved.