使用Google Apps脚本进行编辑时延迟执行

时间:2014-10-19 11:46:59

标签: triggers google-apps-script google-sheets google-spreadsheet-api delayed-execution

我有一个相对较大的电子表格(300行,30列),我根据电子表格中的值进行着色。我只使用两次访问来最低限度地访问API:

  • getValues(...)访问数据范围的所有值。
  • setBackgrounds(...)设置数据范围的所有背景。

大约半秒钟或更短时间内运行。但是,如果我使用onEdit()对每个编辑进行运行,它会受到妨碍,但我也不希望它在我不编辑时以固定的时间间隔进行更新,这似乎是浪费。是否有一种很好的方法可以让脚本以“延迟”方式运行,在我编辑时定期更新?

1 个答案:

答案 0 :(得分:1)

首先,我会说你应该看一下Google表格的条件格式(格式>表格中的条件格式菜单项) - 你可以在不涉及Apps脚本的情况下完成所需的大部分工作。

如果失败,您可以设置regular time-based trigger来检查修改并适当更改背景。您可以使用单独的onEdit()触发器来支持此触发器,以记录内部更改的内容。流程如下:

  1. 进行了更改,onEdit()触发
  2. onEdit()触发器仅将更改的单元格位置记录到本地变量或缓存
  3. 基于时间的触发器每分钟/每小时都会触发
  4. 基于时间的触发器会检查已编辑单元格的缓存,更改其背景,然后从缓存中清除它们
  5. 也就是说,根据您的工作流程,这种方法可能不比简单地使用时间触发器直接更改单元格好。