我一直在玩Google脚本编辑器,并且从中获得了很多使用。
我要查看的下一个任务是复制模板时的自动格式设置和文本插入/替换。
一个用例示例如下:在我的组织中,我已向模板库提交了一个Doc。创建模板副本时,我希望它自动插入今天的日期和当前时间(四舍五入到最接近的小时数)。
这是有关触发器的问题。文本替换位很容易完成。更不用说这只是基本的用例之一,我将尝试更多类似的行为,例如时间表等。
我遇到的问题是我似乎无法像我希望的那样使触发器工作。
我认为我可以尝试使用的两个触发器:onOpen(e)
和onInstall(e)
。
onOpen(e)
,尽管有效,但“效果很好”。也就是说,它也将替换原始模板上的文本,这在更新这些模板中的信息时会带来麻烦。
onInstall(e)
,我认为这可以工作,因为创建文档的副本也可以“安装”脚本。但是,此功能似乎根本没有运行。
是否有任何关于从模板创建文档时一次触发一次的想法?
干杯, Bricktron
答案 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"
}