编辑SpreadsheetApp时触发Google DocumentApp脚本

时间:2020-01-20 22:00:17

标签: google-apps-script google-sheets google-docs

使用Google Apps脚本,是否可以在编辑Google表格文件时自动更新Google文档文件?

我有一个带有脚本的Google DocumentApp文件,该脚本从Google SpreadsheetApp文件获取数据。我希望创建一个脚本,以便在编辑SpreadsheetApp文件时自动更新DocumentApp文件。

这是我当前正在使用的代码:

function updateDocumentOnEditTrigger() {
  var ss = SpreadsheetApp.openById(SheetID);
  ScriptApp.newTrigger('UpdateDocument')
      .forSpreadsheet(ss)
      .onEdit()
      .create();
}

运行updateDocumentOnEditTrigger函数似乎不会触发UpdateDocument函数,该函数在手动运行时应能正常工作。

1 个答案:

答案 0 :(得分:1)

答案:

为了在编辑电子表格时运行DocumentApp脚本,必须使用附加到电子表格的On edit可安装触发器。

更多信息:

根据简单触发器文档,有一些限制需要考虑。特别是:

他们可以修改绑定到的文件,但不能访问其他文件,因为这需要授权。

因此,无法使用onEdit(e)触发功能。但是,可以创建一个可安装的触发器,并进行设置,使其可以在编辑时触发。

代码:

在脚本中将以下功能绑定到电子表格文件:

function updateDocument() {
  var doc = DocumentApp.openById('DOCUMENT_ID');
  // here you can put your code that edits the document in the way you want.
}

您可以创建一个可安装的触发器,该触发器在电子表格的编辑上运行。但是,在设置触发器之前,您至少需要运行一次代码-这是因为DocumentApp需要授权,并且您需要授予该授权!

设置可安装的触发器:

设置代码后,您可以通过完成以下步骤来创建可安装触发器:

在绑定的电子表格脚本的Apps脚本编辑器视图中,遵循路径Edit > Current project's triggers。这将在新的标签或窗口中打开项目的触发器。

在左下方,单击+ Add Trigger按钮,弹出Add Trigger模态。从这里,设置具有以下属性的触发器:

  • 选择要运行的功能:updateDocument
  • 选择应运行的部署:Head
  • 选择事件源:From spreadsheet
  • 选择事件类型:On edit

然后单击Save。这将设置触发器,以便您每次编辑电子表格时都将运行您的文档编辑功能。

希望对您有帮助!

参考文献: