【发布时间】:2012-06-07 23:55:32
【问题描述】:
我对使用 Google Docs 还很陌生,但我真的很感激它。脚本很容易完成简单的任务,但我开始意识到一个潜在的速度问题,这有点令人沮丧。
我有一张工作表用于我的业务计算工地上某些材料的成本。它工作得很好,但是在工作之间清除有点乏味,所以我编写了一个简单的脚本来清除我需要清空的范围(由我定义并由名称引用)。
再一次,效果很好。唯一的问题是清除几个范围(七个)最终需要大约十秒。我相信这是因为在清除每个范围后保存电子表格,这变得很耗时。
我想做的是通过在脚本中禁用自动保存来测试这个理论,然后在清除范围后重新启用它。我什至不知道这是否可行,因为我还没有在 API 中看到执行此操作的函数,但如果可以,我很想知道。
编辑:这是我正在使用的功能。我已经尝试将其重写几次,以使其更简洁,减少 API 调用密集度,但到目前为止,我在减少处理调用所需的时间方面没有任何运气。
function clearSheet() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
sheet.getRange("client").clear();
sheet.getRange("lm_group_1").clear({contentsOnly:true});
sheet.getRange("lm_group_2").clear({contentsOnly:true});
sheet.getRange("dr_group_1").clear({contentsOnly:true});
sheet.getRange("dr_group_2").clear({contentsOnly:true});
sheet.getRange("fr_group_1").clear({contentsOnly:true});
sheet.getRange("fr_group_2").clear({contentsOnly:true});
sheet.getRange("gr_group_1").clear({contentsOnly:true});
sheet.getRange("client_name").activate();
}
【问题讨论】:
标签: google-apps google-apps-script google-sheets google-spreadsheet-api