如何从另一个项目运行谷歌应用程序脚本功能

har*_* ts 5 google-apps-script

我有几个工作表绑定到电子表格的功能。每个电子表格都有自己的功能,并使用SpreadsheetApp.getUi 来运行html 服务。我想在主电子表格项目的所有工作表中启动函数调用?是否可以?类似于获取电子表格项目的句柄并在该项目中运行脚本?

JSD*_*ton 5

您有两个选择:

  1. 将您的脚本作为库发布,并在您的每个脚本项目中订阅每个脚本。
  2. 将您的脚本作为具有特定功能的 Web 应用程序发布为单个伪 Webhook。有点像分布式 API。

各有利弊。两者都与可维护性无关。

库选项将提供代码完成,而网络应用程序选项将启用(如果您愿意)让您异步运行代码。

两者都有不同的速度惩罚。如文档中所述,启用库的脚本速度较慢。由于urlfetch延迟,Web 应用程序会变慢。

库函数将使用主机脚本中允许的运行时,而 Web 应用程序将扩展运行时和一些配额。

文档:

  1. 将您的脚本发布为库
  2. 将应用程序脚本作为端点运行


小智 5

在我看来,使用库是保护代码最快、最简单的方法。为此你需要:

  • 1 个电子表格或任何包含代码 - SCRIPT A 的 Google 文档

  • 1 个作为库发布的独立脚本 SCRIPT B。

  • 在 SCRIPT A 的编辑器中 -资源+图书馆 您添加库密钥

  • 在 SCRIPT A 代码中可以调用 SCRIPT B 的函数

    函数 callFunctionOfScriptB(){ LibraryIdentifier.functionNameinScriptB() }

  • 当您单击弹出窗口的标识符列中的资源 + 库时,您会找到 LibraryIdentifier

  • functionNameinScriptB = 您要在脚本 B 中调用的函数的名称