在线编写脚本时将 JavaScript 变量(或结构化数据)发送到谷歌表格?功能之外还有什么吗?



我们可以用javascript编写自定义函数,我们从Google Sheets标准GUI调用这些函数:例如

=myFunction(a, b, 'c')

但是有没有办法直接访问数据结构,而不是通过函数? 例如,我想有一些结构化的javascript数据/对象,并在不使用函数方法的情况下检索如下所示的数据?

=friends['mike'].birthday

不,不支持。您只能从表格中访问用function声明的非私有函数。查看"自定义函数指南"以了解确切的限制。

此外,没有对全局变量的持久修改,因为每次调用都来自文字项目文本定义的"全新石板"。因此,在您的示例中,您的"friends"对象需要完全静态才能使用,或者需要是由访问函数实例化的非全局对象,例如从CacheServicePropertiesService反序列化,或从某个远程端点加载。


var friends = {
"mike": {
birthday: new Date("..."),
...
},
...
};
function FRIENDINFO(friend, property) {
if (friends[friend]) {
return friends[friend][property];
}
return "No friend named " + friend;
}

请注意,在自定义函数中使用PropertiesServiceCacheServiceUrlFetchApp可能会很快导致性能不佳和超出配额,除非您将函数设计为范围输入和范围输出。

最后,即使您动态加载数据,自定义函数的结果也应该是确定性的,即仅依赖于输入函数参数。因此,即使您的后端数据更新,也不需要自定义函数显示的数据输出进行更新。

相关内容

最新更新