Составление списка пустых строк и скрытие их в Google App Script - PullRequest
0 голосов
/ 08 июня 2018

Как показывает функция name, мне нужно скрыть некоторые строки, которые являются пустыми, от столбца 4 вперед, но выполнение одного за другим замедляет процесс, поэтому моя идея состоит в том, чтобы собрать все значения в список и затем передать этосписок для функции hideRows и скрыть строки сразу.Это дает мне ошибку, но, честно говоря, я не могу понять, что я делаю неправильно.Спасибо за помощь.

function HidingYoMama() {
   
for (var i=8;i<415;i++) {
  var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var targetRow = ss.getRange(i,4,1,ss.getLastColumn());
  var isBlank = targetRow.isBlank();
  var title = ss.getRange(i,1,1,3).isBlank();
  var hideThisRows = [];
    if (title == false) {
      if(isBlank == true) {
        var result = hideThisRows.push(targetRow[i]);
        Logger.log(result);
  }
  }
  }
 
 var hideThem = ss.hideRows(hideThisRows);
 Logger.log(hideThem); #Those rows are out of bounds. (line 187, file "Code")

}

1 Ответ

0 голосов
/ 08 июня 2018

Я посмотрел документацию для метода hideRow (s).Поэтому, если вы посмотрите ниже, вы увидите, что метод принимает два параметра.rowIndex (от какой строки я должен начать скрываться), и numRows принимает, сколько строк вниз от начальной точки я должен скрыть.

hideRows (rowIndex, numRows)

Оба эти параметра принимают одно целочисленные значения,Примером может быть: sheet.hideRows (1,3). Он начнет скрываться от первой строки и скроет следующие 3 строки.)

Вы получаете ошибку, потому что вы фактически пытаетесь нажать "[1, 2,3,4,5,6,7,8] "во что-то, что принимает" 1 ".

Я тестировал этот код на 150 строках (с одним пустым значением), он, казалось, работал хорошо.(Время выполнения составило 12 секунд.) Надеюсь, это поможет.

function hideRows() {

  var ss = SpreadsheetApp.getActiveSpreadsheet()
  var sheet = ss.getActiveSheet()


  for (var i = 1; i < sheet.getLastRow(); i++) {
    if(sheet.getRange(i, 1, 1, 1).isBlank()) {
     sheet.hideRows(i)

  }

}
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...