【问题标题】:Google Apps Script refresh sheet while function is running函数运行时 Google Apps 脚本刷新表
【发布时间】:2017-02-15 17:34:05
【问题描述】:

我的 Google 表格中有一些脚本/完成所有这些脚本可能需要很长时间(我认为最多需要 5 分钟)。我想显示一些信息,用户应该稍等一下。所以我有一些代码:

function test(){
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var cell = sheet.getRange("A1");
  sheet.clear();
  cell.setValue('WAIT!!!!');
  DATA = UrlFetchApp.fetch(url);
  // And some action that takes a lot of time ....
  cell.setValue('DONE!!!!');

但它不会显示“WAIT”,它只会在一切正常时显示“DONE”。如果有任何错误和功能崩溃,它只能显示“等待”。看来我需要以某种方式刷新它。

【问题讨论】:

    标签: google-apps-script google-sheets


    【解决方案1】:

    将单元格值设置为等待后调用flush()方法。

    SpreadsheetApp.flush(); //Applies all pending Spreadsheet changes.
    

    【讨论】:

    • 那无济于事。它什么也不显示,因为脚本在服务器端运行并且在完成之前什么也不返回。
    • SpreadsheetApp.flush() 专门在脚本仍在运行且不需要返回任何内容时更新工作表。我在无限循环之前调用它只是为了检查它仍然更新了工作表。
    • 嗯,刚刚经过测试,它确实有效,对不起,我很确定它不适用于以前版本的电子表格.. 我的错,我应该检查一下!投票补偿;)。
    • 如果我通过一个循环,为每一行设置值,但我想在我通过循环时显示每一行被添加,这是否有效?我尝试在 setValues(data) 之后添加它,但什么也没看到。基本上,每次我运行我的函数时我都有大约 50 多行,我希望在脚本运行时看到每一行被添加。提前致谢!
    猜你喜欢
    • 1970-01-01
    • 2020-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多