【问题标题】:Google App Script Spreadsheet bug with insertRows() and getRange() operation immediately after谷歌应用程序脚本电子表格错误与 insertRows() 和 getRange() 操作后立即
【发布时间】:2012-05-04 03:50:11
【问题描述】:

当我尝试在我的函数中使用 insertRows() 调用或 insertRowsAfter() 时,我似乎遇到了一致的“Server Encountered an Error”然后在新创建的单元格范围内执行 getRange() 操作调用(例如更改字体粗细或新单元格中的设置值)。

当我调用我的函数时,我总是得到一个谷歌“遇到服务器并出错”。 当我在调试模式中调用我的函数时,一步一步:没有错误!!! 执行 catch 时没有显示错误日志。

我在 getRange() 操作之前尝试了 Spreadsheet.flush() 调用,但没有帮助。

  function test() {
    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var sdebtcal = ss.getSheetByName('Debt');  
    var max_rows = sdebtcal.getMaxRows(); // sheet set with only 5 rows to test
    sdebtcal.insertRowsAfter( max_rows , 20); // adding 20 rows 
    sdebtcal.getRange(max_rows+5, 1, 2, 1).setFontWeight('bold'); // trying to setFontWeight in the new range of cells
  }

我不得不说我尝试了一个空白电子表格,但我没有遇到问题。仅适用于我当前的 large 电子表格。虽然测试表很小(要测试 2 行!)。此外,我没有达到电子表格上的任何最大单元格限制。

有人有提示吗?大型电子表格的电子表格脚本 API 可能存在错误?

问候,

【问题讨论】:

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


    【解决方案1】:

    我发现,如果在脚本执行时未在客户端打开电子表格,我在使用 InsertRowsBefore() 和 InsertRowsAfter() 时遇到的问题就会消失。因此,如果您可以从不同电子表格中的脚本或定时触发器中插入行,那么您可能会发现可以解决该问题。祝你好运!

    这是我在 GAS 论坛上发表的一篇关于它的帖子的 link,如果您想了解更多详细信息,并且您可能也有兴趣在 Issue 1270 上添加评论。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-15
      • 2023-03-24
      相关资源
      最近更新 更多