Google Spreadsheet会通过脚本关闭自动保存吗?

时间:2012-06-07 23:55:32

标签: google-apps google-apps-script google-sheets google-spreadsheet-api

我对使用Google文档相当陌生,但我非常欣赏它。脚本很容易完成简单的任务,但我已经意识到一个有点令人沮丧的潜在速度问题。

我有一张工作表,用于我的业务,​​以计算工地上某些材料的成本。它工作得很好,但在工作之间清除有点单调乏味,所以我编写了一个简单的脚本来清除我需要清空的范围(由我定义并通过名称引用)。

再次,工作得很好。唯一的问题是清除几个范围(七个)最终需要大约十秒钟。我相信 - 这是因为在清除每个范围后都会保存电子表格,这会耗费时间。

我想做的是通过在脚本中禁用自动保存来测试此理论,然后在清除范围后重新启用它。我不知道这是否可能,因为我没有在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();
}

1 个答案:

答案 0 :(得分:1)

这是不可能的,也许永远不可能。这不是Google Docs的“本质”。

但是,根据您编写脚本的方式,最终可能会立即写入所有更改。有一些API调用可能会强制将您的文章刷新到电子表格中(比如在您编写内容后尝试阅读),但我们需要查看您的代码来检查它。

无论如何,您始终可以查看电子表格修订历史记录,以验证它是一次完成还是分多步完成。

关于性能,应用程序脚本有一个不可避免的自然延迟,但它不是10秒,因此可能有改进脚本的空间,使用较少的API调用并优先选择setValues等批量调用{{1 }} 等等。但话说回来,我们必须看到你的代码断言并提供更多有用的提示。