我正在学习google Ui Service
我有一个独立的谷歌脚本(不是任何文档的一部分),并在该脚本中,我有以下代码,我从这个页面。
function demoUI() {
var myapp = UiApp.createApplication().setTitle('An improved GUI');
var mygrid = myapp.createGrid(3, 2);
mygrid.setWidget(0, 0, myapp.createLabel('Name:'));
mygrid.setWidget(0, 1, myapp.createTextBox());
mygrid.setWidget(1, 0, myapp.createLabel('Age:'));
mygrid.setWidget(1, 1, myapp.createTextBox());
mygrid.setWidget(2, 0, myapp.createLabel('City'));
mygrid.setWidget(2, 1, myapp.createTextBox());
var mybutton = myapp.createButton('Press me');
var mypanel = myapp.createVerticalPanel();
mypanel.add(mygrid);
mypanel.add(mybutton);
myapp.add(mypanel);
return myapp;
}
问题是当我运行脚本时,没有显示任何内容。
我尝试将此脚本添加到谷歌文档(文档,而不是电子表格),同样,当我运行脚本时,没有显示任何内容。
我一定是误会了什么,但不知道是什么,如果你能帮助我,我将非常感激。
的问候Crouz
要在Google Docs中显示UI,您需要将其放入对话框或侧边栏中。例如DocumentApp.getUi().showModalDialog(myapp, 'My Dialog')
。为了服务于Google Doc之外的UI,将函数重命名为doGet()
,使其成为一个web应用程序。
你应该替换:
return myapp;
由:var ss = SpreadsheetApp.getActiveSpreadsheet();
ss.show(myapp);
最后,你应该有:
function demoUI() {
var myapp = UiApp.createApplication().setTitle('An improved GUI');
var mygrid = myapp.createGrid(3, 2);
mygrid.setWidget(0, 0, myapp.createLabel('Name:'));
mygrid.setWidget(0, 1, myapp.createTextBox());
mygrid.setWidget(1, 0, myapp.createLabel('Age:'));
mygrid.setWidget(1, 1, myapp.createTextBox());
mygrid.setWidget(2, 0, myapp.createLabel('City'));
mygrid.setWidget(2, 1, myapp.createTextBox());
var mybutton = myapp.createButton('Press me');
var mypanel = myapp.createVerticalPanel();
mypanel.add(mygrid);
mypanel.add(mybutton);
myapp.add(mypanel);
var ss = SpreadsheetApp.getActiveSpreadsheet();
ss.show(myapp);
}