您能否以编程方式在 Google 表格单元格中生成按钮?

Can you programmatically generate buttons in Google Sheets cells?

我有一个由非技术人员团队定期访问的电子表格,如果我可以在某些行上自动生成可点击按钮,它会加快我们的工作流程(取决于行的内容)启动 Google Apps 脚本。

一个优雅的解决方案(HTML 服务或 UI 服务)会很好,但我不介意 using Drawings。问题是,我不知道如何以编程方式生成它们。

我是不是遗漏了一些非常明显的东西,或者 Google Sheets 真的只是想让你在 dialogs/sidebars 中保留 UI 东西?

不,您不能将按钮放入 Google Sheet 的单元格中。您可以 将按钮图像放入电子表格中,并附上脚本。至于将某些东西嵌入到单元格中,您所能做的就是将 hyperlink 放入单元格中。 link 可以启动独立的 Apps 脚本。您可以 以编程方式 将 link 放入单元格中。还有其他三个选项,打开电子表格时自动打开自定义菜单、对话框或边栏。

一个hyperlink是一个公式,可以用代码添加公式:

 var ss = SpreadsheetApp.getActiveSpreadsheet();
 var sheet = ss.getSheets()[0];

 var cell = sheet.getRange("B5");
 cell.setFormula("=hyperlink("www.google.com", "search the web");

Google Documentation - Set Formula

我反对使用表格中的图像作为按钮来完全触发脚本。

从侧边栏触发脚本函数的最少 html 代码...

function onOpen() {
  showSidebar(); 
}

function showSidebar() {
  return SpreadsheetApp.getUi()
  .showSidebar(HtmlService
               .createHtmlOutput('<button onclick="google.script.run.myFunction()">Run</button>'));
}