【问题标题】:Google Apps Script custom functions for Google Sheets outside of Code.gs?Code.gs 之外的 Google 表格的 Google Apps 脚本自定义函数?
【发布时间】:2019-04-02 02:16:00
【问题描述】:

我正在构建一个附加组件。我注意到我可以有多个 html 文件。我也可以有多个代码文件,即不仅仅是Code.gs吗?

如果是这样,我如何使它们被加载?如果不能,Sheets 怎么知道 Code.gs 中定义的函数是否可以在公式中使用?

稍后

因此有人建议,看到脚本编辑器允许您创建额外的 gs 文件,只需在插件中的另一个脚本文件中使用自定义函数就足够了。但是,我在这方面并没有取得很大的成功。

所以除了我的 Code.gs 之外,我还有 Medical.gs,其中包含以下内容:

/**
 * Gargling function for digital sore throat
 *
 * @param {object} input The thing to gargle
 * @return the gargled parameter
 * @customfunction
 */
function GARGLE(input) {
  console.log("GARGLE");
  return "GARGLE";
}

即使使用 JSDoc 标头,当我从脚本编辑器的“运行”菜单中选择“作为附加组件测试”并运行准备好的测试电子表格时,自定义函数也是不可见的。在电子表格中,我可以随心所欲地执行=GARGLE(),但我仍然得到标准的#NAME? 错误。

稍后

所以我将一个类似的自定义函数放入一个新的独立脚本项目的 Code.gs 中。当作为附加组件进行测试时,目标电子表格甚至看不到 this 之一。这里有点疯狂。

【问题讨论】:

  • 您的电子表格文件项目中可以有任意数量的脚本文件。您只需转到代码编辑器,文件 -> 新建 -> 脚本文件。每个函数都由一个名称定义。您不能拥有多个具有相同名称的函数。然后您可以按名称(...)执行一个函数,其中 ... 可能是参数。您可以通过输入 =name(...) 在电子表格单元格中执行与自定义函数相同的函数。对于 Web 应用程序也是如此,项目知道多个脚本页面中所有函数的名称。
  • 目前所有 Apps 脚本文件共享同一个命名空间。
  • 你的自定义函数对我来说很好用
  • @beano(孩子们很喜欢那个漫画) 是的,该功能在某些情况下可以正常工作,但在其他情况下则不行。如果我有一个带有单个 Code.gs 文件和该函数的插件,然后从脚本编辑器将其作为插件进行测试,则 Google 表格不会看到它。也许我应该重新启动我的笔记本电脑......当事情变得异常时通常的反应。
  • @TheWizEd 我宁愿开发一个独立而不是绑定。

标签: google-apps-script google-sheets custom-function


【解决方案1】:

有一个关于自定义功能无法与菜单项一起使用的未解决问题

测试作为插件

https://issuetracker.google.com/36763437

目前您必须使用绑定到工作表的脚本来测试您的功能。

【讨论】:

    最近更新 更多