【问题标题】:Remove empty rows in Google Sheets删除 Google 表格中的空行
【发布时间】:2020-03-15 19:08:26
【问题描述】:

​这个功能我有以下问题。它只删除下面的空白行,但我想删除上面的行。

function removeEmptyRows(){
  var sh = SpreadsheetApp.getActive();
  var sh1=sh.getSheetByName('name');
  var range=sh1.getRange('A:A');
  var maxRows = sh1.getMaxRows(); 
  var lastRow = sh1.getLastRow();
  sh1.deleteRows(lastRow+1, maxRows-lastRow);
}

我尝试了以下功能

function removeemptyrows(){
    var ss=SpreadsheetApp.getActive();
    var sh1=ss.getSheetByName('name');
    var range=sh1.getRange('A:A');
    var values = range.getValues();
    for( var i = values.length-1; i >=0; i-- ) {
      for( var j = 0; j < values[i].length; j++ )
        if( values[i][j] === "" )
          sh1.deleteRow(i+1)
          }
  }

但它删除行的速度太慢 - 一个接一个。

【问题讨论】:

    标签: google-apps-script google-sheets


    【解决方案1】:
    • 您要删除“A”列单元格为空的行,范围从工作表底部的 10 行。
    • 您希望使用 Google Apps 脚本实现此目的。
    • 您希望降低流程成本。

    如果我的理解是正确的,那么这个答案呢?请认为这只是几个可能的答案之一。

    修改点:

    • 在这种情况下,我想建议使用 Sheets API。使用 Sheets API 时,即使行是离散的,也可以通过一次 API 调用删除行。

    示例脚本:

    当你使用这个脚本时,please enable Sheets API at Advanced Google services.

    function removeemptyrows() {
      var sheetName = "name"; // Please set the sheet name.
    
      var ss = SpreadsheetApp.getActiveSpreadsheet();
      var sheet = ss.getSheetByName(sheetName);
      var sheetId = sheet.getSheetId();
      var values = sheet.getRange('A10:A').getValues();
      var requests = values.reduce(function(ar, [e], i) {
        if (!e) ar.push({deleteDimension:{range:{sheetId:sheetId,dimension:"ROWS",startIndex:(i + 9),endIndex:(i + 10)}}});
        return ar;
      }, []).reverse();
      if (requests.length > 0) Sheets.Spreadsheets.batchUpdate({requests: requests}, ss.getId());
    }
    
    • 在这种情况下,示例脚本与https://stackoverflow.com/a/60613983/7108653 的以下脚本几乎相同。作为 2 个修改部分,在您的情况下,您要删除“A”列中的空单元格行。所以'C6:C' + sheet.getLastRow()if (e)分别被修改为'A10:A'if (!e)

    参考资料:

    如果我误解了您的问题并且这不是您想要的方向,我深表歉意。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-08-10
      • 1970-01-01
      • 1970-01-01
      • 2017-10-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多