背景:我有一个谷歌网站,我一直在从一个包含我学生分数的谷歌电子表格中提取信息,但是我想让它更加动态,以便他们可以随时请求报告所有当前分数我喜欢。在我编写的脚本中,学生将输入密码,点击一个按钮,然后他们的分数就会生成。
问题:根据我的阅读,当他们单击按钮时,按钮的处理程序会导致脚本重新运行。当前电子表格无法存储,当我尝试访问电子表格时,它告诉我它为空。如何再次访问电子表格?我尝试过使用 ScriptProperties,但得到了相同的结果。顺便说一句,如果我不尝试将它作为 web 应用程序运行,它就可以工作。
这是 doGet() 函数和 getPassword() 函数的一部分,一旦按下 UI 上的按钮,就会调用该函数。
function doGet() {
var app = UiApp.createApplication();
app.add(app.loadComponent("MyGui"));
var panel = app.getElementById("VerticalPanel1");
var text = app.createPasswordTextBox().setName("text");
var handler = app.createServerHandler("getResults").addCallbackElement(text);
panel.add(text);
panel.add(app.createButton("Get Record", handler));
SpreadsheetApp.getActiveSpreadsheet().show(app);
}
function getResults(eventInfo) {
var app = UiApp.createApplication();
var password = eventInfo.parameter.text;
var panel = app.getElementById("VerticalPanel1");
var textArea = app.createRichTextArea();
panel.add(textArea);
var pointsSheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var passwordCheckRange = pointsSheet.getRange("B70:C94").getValues();
...