【问题标题】:Google Spreadsheet turn off autosave via script?谷歌电子表格通过脚本关闭自动保存?
【发布时间】: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


    【解决方案1】:

    这是不可能的,而且很可能永远不会。这不是 Google 文档的“本质”。

    但根据您编写脚本的方式,最终可能所有更改都已同时编写完毕。有一些 API 调用可能会强制将您的作品刷新到电子表格中(例如在您写完东西后尝试阅读),但我们需要查看您的代码来检查。

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

    关于性能,Apps 脚本有一个不可避免的自然延迟,但它不是 10 秒,因此您的脚本可能还有改进的空间,使用更少的 API 调用并更喜欢像 setValues 这样的批处理调用而不是 setValue 等等在。但话又说回来,我们必须查看您的代码才能断言并提供更多有用的提示。

    【讨论】:

    • 我已将当前脚本添加到原始帖子中。我讨厌它现在的样子(太多的 API 调用)并且很可能会重写它以使其更优雅,但这是它的工作进行中的状态。
    猜你喜欢
    • 2012-06-15
    • 1970-01-01
    • 1970-01-01
    • 2014-11-26
    • 2017-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多