sheet.deleteRows()需要从顶部删除所有包含数据的行(最好是第2行)

roc*_*how 4 google-sheets google-apps-script

每天需要删除200-300行数据.单击菜单项,我想删除所有这些行.我已经有了一个似乎部分工作的脚本(它只删除了几行......但是我没有这么做了)我应该说.希望有人可以为加快进程或提供新的代码设计提供一些启示,

**如果可能排除ROW_1

function clearRange() {
  var sheet = SpreadsheetApp.getActive().getSheetByName('test');

  var start=1;
  var end=300;
  for (var i = start; i <= end; i++) 
    { sheet.deleteRow(i); }

}
Run Code Online (Sandbox Code Playgroud)

样本表 - 请复制

Ala*_*lls 23

不要使用for循环.您可以在一个操作中删除Google电子表格中的多个行:

var start, end;

start = 2;
end = sheet.getLastRow() - start;//Number of last row with content
      //blank rows after last row with content will not be deleted

sheet.deleteRows(start, end);
Run Code Online (Sandbox Code Playgroud)

Apps脚本文档

  • 这是正确的做法。该文档指定您应该使用尽可能少的调用来编辑函数。另一个例子是将数据写入电子表格。与其使用循环将数据输出到电子表格,不如将所有内容输出到数组,然后将数组写入电子表格。 (2认同)

小智 5

仅供参考:getLastRow() 返回带有内容的最后一行的索引。使用 getMaxRows() 返回绝对最后一行(无论内容如何)。