Google Apps脚本,在复制文档后调用一次函数

时间:2018-11-20 04:33:41

标签: google-apps-script

我一直在玩Google脚本编辑器,并且从中获得了很多使用。

我要查看的下一个任务是复制模板时的自动格式设置和文本插入/替换。

一个用例示例如下:在我的组织中,我已向模板库提交了一个Doc。创建模板副本时,我希望它自动插入今天的日期和当前时间(四舍五入到最接近的小时数)。

这是有关触发器的问题。文本替换位很容易完成。更不用说这只是基本的用例之一,我将尝试更多类似的行为,例如时间表等。

我遇到的问题是我似乎无法像我希望的那样使触发器工作。

我认为我可以尝试使用的两个触发器:onOpen(e)onInstall(e)

onOpen(e),尽管有效,但“效果很好”。也就是说,它也将替换原始模板上的文本,这在更新这些模板中的信息时会带来麻烦。

onInstall(e),我认为这可以工作,因为创建文档的副本也可以“安装”脚本。但是,此功能似乎根本没有运行。

是否有任何关于从模板创建文档时一次触发一次的想法?

干杯, Bricktron

1 个答案:

答案 0 :(得分:1)

首先,触发器onInstall(e)仅适用于加载项。 现在进入onOpen(e),我认为您可以使用Google Apps Script Property's Services存储一个标志,该标志可以帮助您的代码标识该文件是否已打开。

因此,onOpen(e)第一次运行时,请分配属性,例如:propertyService.setProperty("opened","TRUE"),下一次您可以通过访问该属性来检查它是否已经“打开”。

示例:

var openedFlag=propertyService.getProperty("opened");
if(openedFlag=="TRUE"){
  //Document has been modified
  //Do not run the modifiable code again
}else {
  //First time
  //Edit the file
  //Set the propertyService to "TRUE"
}