将一个现有的应用脚本添加到谷歌表格中

4

是否有可能使用应用程序脚本将现有应用程序脚本添加到新创建的Google表格中,并自动分配给触发器?

例如,我有一个名为spreedsheetA的电子表格。然后我的表单将创建spreedsheetB,是否可以通过使用表单中的appscript自动将我的应用程序脚本添加到spreedsheetA到spreedsheetB,而无需手动复制+粘贴。


1
例如,在您的情况下,将“spreedsheetA”复制为“spreedsheetB”怎么样?关于是否可以使用应用程序脚本向新创建的googlesheet添加现有的应用程序脚本?,您可以使用Google Apps Script API实现这一点。 参考 关于并自动将其分配给触发器?,例如,如何使用脚本创建电子表格和容器绑定脚本? - Tanaike
我没有想到那个。让我测试一下。太棒了!谢谢您,先生! - sirnewbee
谢谢您的回复。我认为,如果将“spreedsheetA”复制为“spreedsheetB”是您期望的相同目标,那么这比使用Google Apps Script API更简单。 - Tanaike
1个回答

1
作为对@Tanaike提出的解决方法的变通,您可以使用Drive API进行复制。因为当您执行makeCopy()操作时,绑定脚本也会被复制。
步骤:
  1. 创建一个新表格,并通过Extensions > Apss Script添加一个绑定脚本。记下ID,在示例中我将其称为SSA_ID
  2. 添加您的脚本。作为概念证明,我只添加了这个简单的脚本:
function onOpen(e) {
  SpreadsheetApp
  .getUi().alert('Hi from bounded script')
}

创建一个脚本,然后将以下代码粘贴到其中:
function copySpreadSheet() {
  const file = DriveApp.getFileById(SSA_ID)
  const newFile = file.makeCopy(`SpreadSheetCopy_${new Date().toISOString()}`)
  Logger.log(newFile.getUrl())  
}

运行脚本,获取url并将其复制粘贴到浏览器中。您会发现它包含了一个有界脚本的副本。
从那里,您可以操纵该副本并将其添加到可安装触发器中,例如:Installable Trigger
ScriptApp.newTrigger('copySpreadSheet')
  .timeBased()
  .everyHours(6)
  .create();

文档:

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接