【问题标题】:appendRow to specific locationappendRow 到特定位置
【发布时间】:2021-03-09 16:57:31
【问题描述】:

我有以下功能:

function addrow() {  
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const ws = ss.getSheetByName("Sheet1");
  ws.appendRow(["apple", "orange", "banana"]);
 }

appendRow 只是将数组中的项目添加到电子表格的最后一个可用行。

我如何让它从指定的行(比如第 10 行)开始,然后继续添加行,“推”下所有其他行? 因此,如果我将脚本设置为从第 10 行开始,当我执行时,项目将进入第 10 行,当我再次执行时,项目将再次进入第 10 行,之前执行的项目现在将进入第 11 行等。 .

【问题讨论】:

    标签: function google-apps-script google-sheets


    【解决方案1】:

    appendRow 总是将数据附加到最后一行,对此我们无能为力。

    有很多方法可以在工作表中间追加,但最简单的方法是使用insertRows() 或其他insertRow 函数:

    insertRow函数:

    随意对它们进行一一测试,看看它们是否适用于您的问题。它们通常相似,但在插入行的多少何处不同。

    代码:

    function addrow() {  
      const ss = SpreadsheetApp.getActiveSpreadsheet();
      const ws = ss.getSheetByName("Sheet1");
      var data = ["apple", "orange", "banana"];
      // shift all rows down by one from row 10 
      ws.insertRows(10, 1);
      // then insert data into blank row (10)
      ws.getRange(10, 1, 1, data.length).setValues([data]);
    }
    

    样本数据:

    样本输出:

    注意:

    如果您只想使用appendRow 附加到工作表的中间,那么有一种方法,但不是最佳解决方案,只是一种技巧。步骤如下:

    1. 将倒数第 10 行的所有数据复制并存储到变量中
    2. 删除工作表倒数第 10 行的数据
    3. 使用appendRow 附加您的数据(现在应该在第10 号粘贴数据,因为第10 行已被删除)
    4. 使用setValues根据变量的长度将倒数第10个的原始值粘贴到倒数第11个。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-21
      • 2020-04-14
      相关资源
      最近更新 更多