通过服务器功能将空值返回给Apps Script webapp以获取某个电子表格
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了通过服务器功能将空值返回给Apps Script webapp以获取某个电子表格相关的知识,希望对你有一定的参考价值。
我正在尝试将电子表格中的数据返回到作为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>
任何帮助将受到高度赞赏。 :)
答案
我之前遇到过同样的问题。当具有日期格式的值包含在由data
检索的getSheetValues()
中时,返回的值变为null。我认为当值从GAS发送到javascript时,解析和/或转换日期值时可能会发生此问题。这样,返回null。为了避免这种情况,我认为您的情况有两种模式。请根据您的情况选择其中一个。
Pattern 1
对于函数spreadsheetTest()
,修改如下。
return data;
To :
return JSON.stringify(data);
Pattern 2
对于函数spreadsheetTest()
,修改如下。
var data = sheet.getSheetValues(1, 1, maxRows, 10);
To :
var data = sheet.getRange(1, 1, maxRows, 10).getDisplayValues();
如果这些对你的情况没用,我很抱歉。
以上是关于通过服务器功能将空值返回给Apps Script webapp以获取某个电子表格的主要内容,如果未能解决你的问题,请参考以下文章
Flutter firebase setData()函数在完成异步函数之前将空值分配给字段
Kotlin - 如何将空值传递给片段 newInstance 方法?