0

由于缺乏对此的讨论,我不确定我是否错过了这一点,但是......

如果我有用户通过自定义菜单使用和查看电子表格,并且我需要将此应用程序部署为 web 应用程序以管理保护设置并实现 API(可视化查询等),那么架构需要是什么样的?根据我在此处阅读的内容,不会显示菜单,那么如何获得在 1 个屋顶下工作所需的一切?

使用 Google Web App 扩展 Google 电子表格 UI

4

2 回答 2

1

您可以有一个脚本来部署菜单以及作为 Web 应用程序工作。您onOpen在电子表格的功能中部署菜单。而且你有一个doGet功能来编写你的网络应用程序代码(通常是 UI)。Web 应用程序是通过服务 URL 而不是电子表格访问的。

编辑:要在电子表格中显示 Web 应用程序 UI,您可以在不同的函数中生成相同的 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);
}
于 2013-09-01T08:45:01.120 回答
1

在通过 Google 上的勤奋搜索拼凑了许多不同的资源后,我发现您实际上可以从 SpreadsheetApp 自定义菜单启动 WebApp,而且一点也不难。

您所做的一切都是像往常一样部署 WebApp,并使用脚本的“项目属性”文件菜单选项来检索“项目密钥”。您只需按照此处所述复制/粘贴到客户端电子表格应用程序的“查找库”框中

安装库后,您可以添加自定义菜单来调用库的 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-08T11:38:26.610 回答