链接到嵌入式Google电子表格中的特定工作表

时间:2016-11-24 12:37:39

标签: google-apps-script google-sheets spreadsheet google-spreadsheet-api embedded-documents

由于我在谷歌电子表格中会有大量的工作表,我想在第一张工作表上创建指向所有工作表的链接。

这适用于谷歌电子表格,代码如下:

function goToSheet2() {
     goToSheet("Sheet2");
}
function goToSheet(sheetName) {
    var sheet = SpreadsheetApp.getActive().getSheetByName(sheetName);
    SpreadsheetApp.setActiveSheet(sheet);
}

有关如何进入this other stack overflow post的进一步说明。

但是,一旦嵌入了工作表,它就不再起作用了。我想这与这个脚本使你的按钮/图像像链接一样工作(脚本只是帮助你找到合适的#gid=)的事实有关,所以它实际上只是重新加载整个页面,这是不可能的嵌入式版本。

非常感谢任何指向正确方向的指示。

修改: 我现在知道为什么这不起作用。正如this page所述:“只有拥有编辑电子表格,文档或表单权限的用户才能运行其绑定脚本。只有视图访问权限的协作者无法打开脚本编辑器,但如果他们复制了父文件,它们成为副本的所有者,并且能够查看并运行该脚本的副本。“

然而,我似乎无法理解如何将绑定脚本制作成与嵌入式文件一起使用的独立脚本。我尝试通过“将其部署为webapp”来发布脚本,但这不起作用。

编辑2 : 我现在有一种非常不雅的方式让脚本在电子表格的嵌入版本上工作,但电子表格不是我想要的方式。

说明: 基本上我改变了iframe代码:

<iframe src="https://docs.google.com/spreadsheets/d/SPREADSHEET-ID/pubhtml?widget=true&amp;headers=false&amp;chrome=false" height="500" width="500"></iframe>

对此:

<iframe src="https://docs.google.com/spreadsheets/d/SPREADSHEET-ID/edit?usp=sharing?widget=true&amp;headers=false" height="500" width="500"></iframe>

这迫使我显示整个谷歌电子表格页面的菜单&amp;一切。然而,该脚本有效:我可以通过单击图像更改为另一个工作表。

现在进入有趣的部分: 我可以通过向链接添加&rm=minimal来隐藏菜单,现在脚本不再有效。

1 个答案:

答案 0 :(得分:0)

您最好创建代码以将数据显示为HTML并将其部署为Web应用程序。从那以后,您可以让Web应用程序根据所做的选择显示相应的数据。您可以从这里开始:Extending Google Sheets然后查看HTML Service: Create and Serve HTML作为起点。您现在可以通过iFrame将Web应用程序嵌入到任何网页中。这将使其保持在仅显示模式,并且查看者无需拥有该文件的权限,因为您可以像自己一样运行Web应用程序。