google-apps-script - 使用 Google Apps 脚本库

标签 google-apps-script google-sheets triggers google-apps-script-libraries

我已阅读有关管理和创建库的所有 Google 文档,但我仍然不知道它们是否适合我要解决的问题。

我知道如何保存独立脚本的版本。我知道如何通过脚本编辑器将库添加到电子表格中。但我不明白,非常简单,如何在新电子表格中触发库脚本。

我有一个电子表格,用作我的组织内经常复制的模板。该模板包含一个脚本,该脚本 (onOpen) 访问单独电子表格(主数据库)上的数据,并在名为“admin”的选项卡上设置这些值。期望的结果是在模板表(以及模板表的每个后续副本)中存在主数据库的副本。此时,模板表有数千个副本,每个副本都运行相同的脚本。

每当我要更改脚本时,我都必须在数千张内更改它。我可以使用图书馆吗?我希望能够在库中创建脚本的新版本,并使连接到该库的所有工作表都经历更改。我知道库需要处于开发模式(在每个工作表内)才能执行此操作。我还了解到,为了进行此切换,我可能仍然需要进入每个工作表来添加库。我只是希望这是我最后一次不得不做如此乏味的任务。

任何建议或可靠信息的链接都值得赞赏。

最佳答案

除了制作附加组件(已在另一个答案中介绍)之外,我还将回答您的图书馆问题。他们将为你工作。您缺少的是“连接”部分。

为此,您希望从 onOpen 中触发库代码。库中的 onOpen 不够,应用程序脚本未检测到。相反,每个电子表格的脚本都需要一个 onOpen(e),它只调用 yourlibrary.onOpen(e)。

因为这些“hook”调用很少改变,特别是一旦你稳定了你的库 API,并且在“开发”模式下使用它将让你只修改库。

每当这些 Hook 之一需要更改(例如,来自 html GUI 的回调需要新参数)时,您就需要更新所有电子表格。为了避免这种情况,请让所有回调接收单个 json 对象而不是多个参数。

关于google-apps-script - 使用 Google Apps 脚本库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44784024/

相关文章:

sql - 在谷歌电子表格中查询数据并格式化结果列

sql-server - SQL Server跟踪DDL CREATE USER

mysql - 在更新后触发器中使用 OLD 变量时出现问题

mysql - 将数据范围从 Google 表格插入到 MySQL

javascript - Google 电子表格拆分基于换行符

python - 使用spreadsheets.batchUpdate发送多个请求会导致错误

google-sheets - 如果唯一的 SELECTed 列已经在 GROUP BY 中,为什么我还必须选择一个聚合列才能使用 GROUP BY?

用于在另一个表中的新行之后更新表的mysql触发器

javascript - 在服务器-客户端往返期间存储(或传递)Element/TableCell 引用

javascript - 删除或忽略 .getRange() 返回的空单元格