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

Jam*_*ore 56 user-interface google-sheets google-apps-script

我想在Google文档电子表格中为特定单元格添加按钮.该应用程序的脚本文件的用户界面 有关如何添加一个新的面板谈判,但目前还不清楚如何在面板用户界面可以连接到特定的行或单元格.

是否可以将UI添加到特定单元格,还是仅限于添加新面板?

Edu*_*rdo 108

应用程序UI仅适用于面板.

您可以做的最好的事情就是自己绘制一个按钮并将其放入电子表格中.比你可以添加一个宏.

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

或者,您也可以在其他位置绘制按钮并将其作为图像插入.

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

在此输入图像描述 在此输入图像描述 在此输入图像描述

  • 截至今天(2016年2月),此方法不允许在单元格中添加UI元素.相反,元素是独立创建的,不会与单元格/行/列复制.无法根据放置和访问的行或列来访问位置. (5认同)
  • 我知道这是一个旧帖子,但它可能节省一些时间知道您绘制的按钮无法插入冻结行或冻结列中的单元格:( (2认同)
  • @Jpsy我会说它确实回答了这个问题.按钮的位置可以分配给脚本中的硬编码范围或命名范围引用,但程序员可以选择.这具有用例含义,这明显不同于您对问题的解释,但是通过"附加到特定行或单元格"来表示OP的含义并不完全清楚.它不像ASP.NET中的数据绑定列,每行只有一个按钮,但您当然可以使用它来影响某些单元格范围. (2认同)
  • 对于 2019 年想知道“分配脚本”菜单出现在何处的任何人,您必须保存并关闭绘图,然后单击图像,然后您将看到一个“3 点”菜单,其中包含“分配脚本...”选项 (2认同)

Jps*_*psy 52

状态2018年:

似乎没有办法单元格中放置按钮(图形,图像),以便将它们链接到Apps脚本功能.


话虽这么说,你确实可以做一些事情:

您可以...

您可以使用图像在单元格中放置图像IMAGE(URL),但不能将它们链接到Apps脚本功能.

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

您可以按照@Eduardo的答案中的描述创建绘图,它们可以链接到Apps脚本功能,但它们将是独立的项目,可以在电子表格"上方"自由浮动,无法放置在单元格中.它们不能从一个单元格复制到另一个单元格,并且它们没有脚本函数可以读取的行或列位置.

  • 您可以将脚本发布到 Web 应用程序,并使用此 HYPERLINK 解决方案来调用脚本并传入要执行的函数作为参数。然后在`doGet(e)`函数中获取参数并像这样执行。`this[e.parameter.functionName]()` (4认同)
  • 我不知道为什么这个也被投票,所以我把它投票给它是有用的,因为它对我有用. (3认同)

The*_*ter 7

使用复选框(例如,在 F1 中)而不是按钮/图像。这是单元格内完整用户界面的中间版本。然后挂钩您的函数,该函数应该在单击按钮时运行以onEdit()触发函数。

示例脚本:

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

参考: