1

由于我的 Google 表格中有大量表格,我想在第一张表格上创建指向所有表格的链接。这适用于谷歌表格,代码如下:

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

关于如何在另一个堆栈溢出帖子中的进一步解释。

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

任何指向正确方向的指针将不胜感激。

编辑:我现在知道为什么这不起作用。如本页所述:

只有有权编辑电子表格、文档或表单的用户才能运行其绑定脚本。仅具有查看权限的协作者无法打开脚本编辑器,但如果他们制作了父文件的副本,他们将成为副本的所有者,并且能够查看和运行脚本的副本。

但是,我似乎无法理解如何将绑定脚本制作成与嵌入文件一起使用的独立脚本。我尝试通过“将其部署为 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>

然而,这迫使我用菜单和所有内容显示整个 Google 表格页面。但是该脚本有效,我可以通过单击图像更改为另一张工作表。

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

4

1 回答 1

0

您最好创建代码以将数据显示为 HTML 并将其部署为 Web 应用程序。从那里,您可以让 Web 应用程序根据所做的选择显示适当的数据。您可能想从这里开始:扩展 Google 表格,然后查看HTML 服务:创建和提供 HTML作为起点。您现在可以通过 iFrame 将 Web 应用程序嵌入到任何网页中。这将使其处于仅显示模式,并且查看者不需要对文件具有权限,因为您可以像自己一样运行 Web 应用程序。

于 2016-11-29T19:17:46.710 回答