我正在尝试将电子表格中的数据返回到作为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>
任何帮助都将受到高度赞赏。 :)
答案 0 :(得分:2)
我之前遇到过同样的问题。当具有日期格式的值包含在由data
检索的getSheetValues()
中时,返回的值将变为空。我认为当值从GAS发送到Javascript时,解析和/或转换日期值时可能会发生此问题。这样,返回null。为了避免这种情况,我认为您的情况有两种模式。请根据您的情况选择其中一个。
对于函数spreadsheetTest()
,修改如下。
return data;
至 :
return JSON.stringify(data);
对于函数spreadsheetTest()
,修改如下。
var data = sheet.getSheetValues(1, 1, maxRows, 10);
至 :
var data = sheet.getRange(1, 1, maxRows, 10).getDisplayValues();
如果这些对你的情况没用,我很抱歉。