有没有办法发布使用 OnEdit 触发器的附加组件?
Is there a way to publish an add-on that uses the OnEdit trigger?
我目前正在开发一个预算插件,允许用户在输入交易金额时自动更新他们的每月交易金额,无论是收入还是支出。该插件使用可安装的触发器 onMyEdit(e)
来更新每月交易金额。例如,如果用户在单元格 A1 中输入他们在 1 月份花费了 5 美元,则 1 月份的费用单元格将更新为 =SUM(A1)
。该脚本有一个用户可以输入的设置菜单,因此它知道电子表格的边界。该脚本通过使用 documentProperties 管理用户输入的设置来维护它们。在文档中,我发现简单的触发器无法在附加组件上使用,因为它们缺少授权,而且我不知道可安装的触发器是否也可以使用。
我能否发布使用此可安装触发器的附加组件,onMyEdit(e)
?我应该用 'Enable on this Document' 复选框更新设置菜单,以便脚本知道要在哪个电子表格上启用还是放弃拥有 onEdit 附加组件的整个想法?
这是我的第一次堆栈溢出 post,如果您需要更多说明,请告诉我。我对使用 Google Apps 脚本能做什么感到很困惑。感谢您查看我的问题。
如何在Add-ons
中使用触发器
如 add-ons 中触发器的文档中所述,您可以在 Add-ons 中使用简单触发器和 onEdit
可安装触发器 - 因此限制会有所不同,具体取决于类型您更喜欢使用的触发器。
重要的是要知道对于Add-ons的具体情况:
Add-ons can programmatically create and modify installable triggers with the Apps Script Script service. Add-on installable triggers can't be created manually. Unlike simple triggers, installable triggers can use services that require authorization.
见:
Installable triggers in add-ons
如何为 Add-on 创建可安装的触发器以及脚本如何知道用户正在处理哪个 sheet?
流程如下:
- 创建一个简单的
onOpen
触发器,它将创建自定义菜单 - 针对已打开的特定价差sheet
- 将一个函数绑定到自定义菜单,该函数将 build 以编程方式触发
onEdit
- 以编程方式构建触发器时,您需要将触发器指定为参数to which spreadsheet 应链接触发器
- 显而易见的选择是活动传播sheet - 自定义菜单功能来自的传播运行。
样本:
function onInstall(e) {
onOpen(e);
}
function onOpen(e) {
var ui = SpreadsheetApp.getUi();
ui.createMenu('Custom Menu')
.addItem('Add a trigger', 'addTriggers')
.addToUi();
}
function addTriggers() {
var ss = SpreadsheetApp.getActive();
ScriptApp.newTrigger('doItOnEdit')
.forSpreadsheet(ss)
.onEdit()
.create();
}
function doItOnEdit(){
console.log("An edit has taken place");
}
我目前正在开发一个预算插件,允许用户在输入交易金额时自动更新他们的每月交易金额,无论是收入还是支出。该插件使用可安装的触发器 onMyEdit(e)
来更新每月交易金额。例如,如果用户在单元格 A1 中输入他们在 1 月份花费了 5 美元,则 1 月份的费用单元格将更新为 =SUM(A1)
。该脚本有一个用户可以输入的设置菜单,因此它知道电子表格的边界。该脚本通过使用 documentProperties 管理用户输入的设置来维护它们。在文档中,我发现简单的触发器无法在附加组件上使用,因为它们缺少授权,而且我不知道可安装的触发器是否也可以使用。
我能否发布使用此可安装触发器的附加组件,onMyEdit(e)
?我应该用 'Enable on this Document' 复选框更新设置菜单,以便脚本知道要在哪个电子表格上启用还是放弃拥有 onEdit 附加组件的整个想法?
这是我的第一次堆栈溢出 post,如果您需要更多说明,请告诉我。我对使用 Google Apps 脚本能做什么感到很困惑。感谢您查看我的问题。
如何在Add-ons
中使用触发器如 add-ons 中触发器的文档中所述,您可以在 Add-ons 中使用简单触发器和 onEdit
可安装触发器 - 因此限制会有所不同,具体取决于类型您更喜欢使用的触发器。
重要的是要知道对于Add-ons的具体情况:
Add-ons can programmatically create and modify installable triggers with the Apps Script Script service. Add-on installable triggers can't be created manually. Unlike simple triggers, installable triggers can use services that require authorization.
见: Installable triggers in add-ons
如何为 Add-on 创建可安装的触发器以及脚本如何知道用户正在处理哪个 sheet?
流程如下:
- 创建一个简单的
onOpen
触发器,它将创建自定义菜单 - 针对已打开的特定价差sheet - 将一个函数绑定到自定义菜单,该函数将 build 以编程方式触发
onEdit
- 以编程方式构建触发器时,您需要将触发器指定为参数to which spreadsheet 应链接触发器
- 显而易见的选择是活动传播sheet - 自定义菜单功能来自的传播运行。
样本:
function onInstall(e) {
onOpen(e);
}
function onOpen(e) {
var ui = SpreadsheetApp.getUi();
ui.createMenu('Custom Menu')
.addItem('Add a trigger', 'addTriggers')
.addToUi();
}
function addTriggers() {
var ss = SpreadsheetApp.getActive();
ScriptApp.newTrigger('doItOnEdit')
.forSpreadsheet(ss)
.onEdit()
.create();
}
function doItOnEdit(){
console.log("An edit has taken place");
}