从谷歌应用脚​​本

时间:2017-09-21 16:34:08

标签: javascript html google-apps-script google-sheets

我正在尝试创建一个'仪表板'在Google表格中,可以在侧边栏中的按钮的单独窗口中打开。此仪表板从Google工作表脚本中提取数据。目前,我正在努力创建和提供此页面,而不是将其部署为“网络应用程序”

如果我将此脚本部署为web-app,则会在doGet()函数中创建一个新窗口,并从我的文件中输入正确的htmloutput,但是此仪表板仅链接到当前文档,对于其他用户将是相同的而不是为不同的工作表重新生成页面。

是否存在创建和提供网页的方法或解决方法,类似于类UI中的showSidebar()或showModalDialog()等方法。我真的不希望用户必须自己发布,因为它太多了

1 个答案:

答案 0 :(得分:0)

我使用此功能使用Google网络应用返回特定的HTML页面:

function doGet(e) {
  Logger.log( Utilities.jsonStringify(e) );
  if (!e.parameter.page) {
    // When no specific page requested, return "home page"
    return HtmlService.createTemplateFromFile("index").evaluate().setTitle("Elkhart PD");
  }

  // else, use page parameter to pick an html file from the script
  return HtmlService.createTemplateFromFile(e.parameter['page']).evaluate().setTitle(e.parameter['page']);
}

从主页面的仪表板开始。在index.html中使用锚标记,其位置如下:

https://script.google.com/a/macros/documentKey1234567/dev?page=extraPage1.html

(使用项目中的html标题标题page=参数。)

这些页面是作为独立的HTML页面打开的,因此您可以使用google.script.run.myFunction() API调用相应的数据。后端的GAS可以从您有权访问的任何工作表中提取,以提供相应的仪表板。