解决方案是将托管 ScriptProperties 的实例传递给库,即类似的东西
function test() {
var props = ScriptProperties.getProperties();
MyLib.func1(props);
}
MyLib.gs
function func1(props) {
var mode = props["mode"];
// ...
}
如果托管脚本处理多个电子表格,则可以使用电子表格 id 作为属性键的一部分,例如,有两个电子表格 idsXYZ000和XYZ001. 托管脚本包含一系列属性
XYZ000.mode=normal
XYZ001.mode=extended
托管脚本接受一个活动的电子表格 ID,并将其与属性一起传递给库方法。
一个复杂的解决方案是拥有一个电子表格的设置类,在托管脚本属性中存储每个处理的电子表格的设置类的 JSON 字符串表示,使用电子表格 id 从属性加载电子表格设置并传递设置实例去图书馆。这是一个示例代码。
function Settings(mode) {
this.mode = mode;
};
function setDefaultSettings() {
var ID0 = "XYZ000";
var SettingID0 = new Settings("normal");
ScriptProperties.setProperty(ID0, SettingID0);
}
function test() {
var props = ScriptProperties.getProperty("XYZ000");
MyLib.func1(props);
}