【发布时间】:2012-11-03 02:39:33
【问题描述】:
我正在尝试将一些用户输入从电子表格上的 Google App 脚本表单保存到私人缓存中。
这是一个测试脚本:
var cache = CacheService.getPrivateCache();
function onLoad() {
var sheet = SpreadsheetApp.getActiveSpreadsheet(),
entries = [{
name : "Show form",
functionName : "showForm"
}];
sheet.addMenu("Test Menu", entries);
}
function showForm() {
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet(),
app = UiApp.createApplication(),
setButton = app.createButton("Set"),
setHandler = app.createServerClickHandler('setTest');
setButton.addClickHandler(setHandler);
app.add(setButton);
spreadsheet.show(app);
}
function setTest(event) {
cache.put("test", "test", 7200);
Browser.msgBox("Test was set: " + cache.get("test") + ". Use the getTest cell formula to test the cache.");
}
function getTest() {
var result = cache.get("test");
return result;
}
单击菜单按钮后,会出现一个表单,并在服务器处理程序中设置缓存值。然后我尝试在单元格中使用 =getTest() 从缓存中获取值。我希望缓存返回值“test”,但它似乎返回 null。
我从这里开始这个问题: http://code.google.com/p/google-apps-script-issues/issues/detail?id=2039
我还发现了另一个类似的: http://code.google.com/p/google-apps-script-issues/issues/detail?id=1804
尝试将表单上的一些用户输入保存到缓存中,以便稍后从另一个函数访问它。
有什么建议吗?
【问题讨论】:
-
消息框显示的值是否正确?
-
如果您正在谈论弹出确认缓存值确实是从 setTest 函数设置的 msgBox,那么是的,确实如此。
标签: google-apps-script google-sheets