google-sheets - 使用独立插件向 Google 表格添加自定义函数

标签 google-sheets google-apps-script google-workspace

我有一堆适用于 Google 表格的自定义函数,目前我将它们复制粘贴为容器绑定(bind)脚本。我想打包成一个独立的附加组件。但是,当我创建一个独立的 Apps 脚本项目并部署它(通过部署 > 测试部署 > 测试最新代码 > 安装 菜单选项)时,虽然插件确实已安装(例如,我在我的工作表中看到它的图标),它没有注册任何我的自定义功能。如何创建一个独立的 Apps 脚本项目,在安装该项目的电子表格中注册自定义函数?

This question是相关的,但我认为那里的讨论不适用。特别是,该答案表明脚本必须添加一些自定义菜单项,大概使用类似的代码

function onOpen() {
  SpreadsheetApp.getUi().createMenu('My Extension')
    .addItem('Enable', 'doNothing')
    .addToUi();
}

function doNothing() {
}

因为在用户通过此类菜单项或其他内容与脚本交互之前,自定义函数不会注册,原因不明™。然而,这个答案是几年前的,似乎不起作用。

特别是,当我尝试执行此操作时,我的独立脚本甚至无法成功添加 Enable 菜单项。我做了一些探索,并提出了一个假设,即我应该添加某种“触发器”,告诉 Google 在用户打开电子表格时运行 onOpen 函数,并且事实上,我可以在容器绑定(bind)的脚本中执行此操作(通过触发器 > 添加触发器 > 选择事件源:来自电子表格 路径),但我的独立脚本没有来自电子表格 作为可用的事件源,因此我不确定如何让我的菜单添加函数在独立脚本中运行onOpen。也就是说,我什至不知道如何直接添加用户可以与之交互的菜单项以尝试加载自定义功能。

但是,我能够转到 list 文件并配置addOns.common.homepageTrigger.runFunction,并命名一个生成 Card 的函数。其中包含一个按钮,按下该按钮会添加一个菜单项,希望按下按钮或与添加的菜单项交互失败时,可以让 Google 相信是时候加载自定义函数了。

但是:没有骰子。 homepageTrigger 工作(生成带有按钮的卡片),按钮工作(通过添加新菜单项),新菜单项工作(通过尽职地调用 doNothing ),但这些都不会导致自定义函数在工作表中可用。这表明我并没有完全无法运行我的脚本(它肯定已安装,并且对我做出响应,例如,更改按钮文本,表明我不仅仅停留在旧版本或 w/e 上),并且上面链接的相关问题不适用于我的情况。

而且,不用说,我的代码作为容器绑定(bind)脚本工作得很好,所以我相当有信心我没有搞砸添加自定义函数的基础知识(并使用 将它们注册到智能感知中) jsdocs 中的@customfunction)。那么,我是否可以通过独立的 Apps 脚本加载项在 Google 表格中注册自定义函数呢?

最佳答案

问题:

解决方案:

你必须publish the editor add-on为此。

关于google-sheets - 使用独立插件向 Google 表格添加自定义函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69385629/

相关文章:

google-sheets - 通过公式生成下一列字母

xpath - 解析YouTube-Xpath检索YouTube channel 的个人资料图片和描述

javascript - 从 Google Sheets 连接到 Bitfinex API

python - "Requested entity was not found."当管理员尝试修补另一个用户签名时

html - XPath地址不够详细

css - 如果我想随机化颜色,但在随机化发生时使用 onload 方法制作了一组颜色,该怎么办?

javascript - 使用 GAS 从/向电子表格读取和写入时间值

google-api - 通过 Gsuite 帐户观看所有电子邮件

google-workspace - GSuite 移动设备 API 未返回管理员中可见的所有设备

filter - 对于没有数据的单元格,Google 表格 Vlookup 结果中出现“不匹配”消息