由于对此缺乏讨论,我不确定我是否错过了重点,但是.
如果我让用户通过自定义菜单使用和查看电子表格,并且需要将此应用部署为webapp,以便管理保护设置并实现API(可视化查询等),那么体系结构需要什么样的外观?从我在这里看到的,菜单将不会显示,所以我如何得到我需要的工作在一个屋檐下?
发布于 2013-09-08 11:38:26
通过在谷歌上努力搜索,拼凑了很多不同的资源之后,我发现你实际上可以从一个SpreadsheetApp自定义菜单中启动一个SpreadsheetApp,这并不难。
您所做的一切都是正常地部署WebApp,并使用脚本的“项目属性”文件菜单选项来检索“项目键”。您只需将其复制/粘贴到客户端SpreadsheetApp的“查找库”框如前所述中即可。
安装库后,可以添加一个自定义菜单来调用库的doGet() &返回要在客户端SpreadsheetApp中显示的应用程序对象:
function Shoo() {
var app = FooManShoo.doGet();
SpreadsheetApp.getActiveSpreadsheet().show(app);
}
function onOpen() {
var entries = [{name : 'man', functionName : 'Shoo'}];
SpreadsheetApp.getActiveSpreadsheet().addMenu('foo', entries);
}希望这能帮到别人!)
发布于 2013-09-01 08:45:01
您可以拥有一个部署菜单的脚本,也可以作为一个web应用程序工作。在电子表格的onOpen函数中部署菜单。并且您有一个doGet函数来编写web应用程序代码(通常是UI)。web应用程序是通过服务URL访问的,而不是电子表格。
编辑:要在电子表格中显示web应用UI,可以在不同的函数中生成相同的UI,并从自定义菜单中调用该函数。你可能想改变你的用户界面的尺寸,以适应你的web应用程序。
function onOpen(){
var menu = [{name: 'Show UI', functionName: 'showUI'}];
ss.addMenu('Show Custom UI', menu);
}
/* If you are using HtmlService to build a web app UI */
function showUI() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var html = HtmlService.createHtmlOutputFromFile('index'); // index.html houses your web app's UI code.
ss.show(html);
}
/* If you are using UIApp to build a web app UI */
function showUI() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var app = UiApp.createApplication();
/* Build UI here */
ss.show(app);
}https://stackoverflow.com/questions/18555548
复制相似问题