如何删除google工作表中的所有(伪)空行

时间:2016-11-19 17:36:32

标签: google-apps-script google-sheets

我需要使用google脚本删除工作表中的所有空行。到目前为止,我已经尝试过标准方法:

function removeEmptyRows(){
  var sh = SpreadsheetApp.getActiveSheet();
  var maxRows = sh.getMaxRows(); 
  var lastRow = sh.getLastRow();
  sh.deleteRows(lastRow+1, maxRows-lastRow);
}

这适用于真正空行,但是当涉及由数组公式产生的“不可见值”占用的行时会失败,尽管这些公式使用IFERROR(1/0)

如何删除包含空白的所有行?

1 个答案:

答案 0 :(得分:0)

以下脚本怎么样?在此脚本中,仅包含空格(空格)的单元格将更改为" null"。

  1. 所有单元格中的数据都放在一个数组中。
  2. 所有仅包含空格的元素都会更改为" null"使用正则表达式。如果单元格有一些符号,请修改正则表达式。
  3. 数组的元素会被覆盖到电子表格中。

    function removeEmptyRows() {
      var sh = SpreadsheetApp.getActiveSheet();
      var data = sh.getDataRange().getValues();
      for (var i in data){
          for (var j in data[i]){
              if (data[i][j].length > 0 && !/^[a-zA-Z0-9]+$/.test(data[i][j])){
                  data[i][j] = null;
              }
          }
      }
      sh.getRange("A1").offset(0,0, data.length, data[0].length).setValues(data);
    }