如何使用应用程序脚本在谷歌电子表格的单元格内添加 UI?

我想添加按钮到谷歌文档电子表格中的特定单元格。应用程序脚本 UI 文档讨论了如何添加一个新面板,但是还不清楚该面板中的 UI 如何连接到特定的行或单元格。

是否可以将 UI 添加到特定的单元格中,或者我们仅限于添加新的面板?

208894 次浏览

应用程序界面只适用于面板。

您所能做的最好的事情就是自己绘制一个按钮并将其放入您的电子表格中。然后可以向其中添加宏。

进入“插入 > 绘图...”,绘制一个按钮,并添加到电子表格。 然后单击它并单击“指定宏...”,然后插入要在其中执行的函数的名称。该函数必须在电子表格中的脚本中定义。

或者,您也可以在其他地方绘制按钮并将其作为图像插入。

更多信息: https://developers.google.com/apps-script/guides/menus

enter image description here enter image description here enter image description here

按钮可以作为图像添加到冻结的行。将附加脚本中的函数分配给按钮可以运行该函数。说你不能的评论当然是一个很老的评论,可能现在事情已经改变了。

2018年现况:

似乎有 不可能的地方按钮(图纸,图像) 内心单元格的方式,将允许他们链接到应用程序脚本功能。


话虽如此,有些事情你确实可以做:

你可以..。

您可以使用 IMAGE(URL)在单元格中放置图像,但是它们不能链接到 AppsScript 函数。

您可以将图像放置在单元格中,并使用以下方法将它们链接到 URL:
=HYPERLINK("http://example.com"; IMAGE("http://example.com/myimage.png"; 1))

你可以按照@Eduardo 的回答创建图纸,它们可以链接到 Apps Script 函数,但是它们将是独立的项目,可以自由浮动在电子表格的上方,不能放置在单元格中。它们不能从一个单元格复制到另一个单元格,而且它们没有脚本函数可以读取的行或 coll 位置。

使用复选框(例如,在 F1中)而不是按钮/图像。这是单元格内部的中间到完整 ui。然后钩住你的函数,这是假定要运行按钮点击到 onEdit()触发函数。

示例脚本:

function onEdit(e){
const rg = e.range;
if(rg.getA1Notation() === "F1" && rg.isChecked() && rg.getSheet().getName() === "Sheet1"){
callFunctionAttachedToImage();
rg.uncheck();
}
}

参考文献: