Скрыть пустые строки в Google Spreadsheet на основе значения ИЛИ пустого - PullRequest
1 голос
/ 21 октября 2019

Я пытаюсь получить скрипт, позволяющий скрывать строки без данных или возвращать пустые результаты.

Понятия не имею, как это сделать.

Вот некоторые пояснения к скриншоту:

  • Скрипт должен начинаться со строки 27
  • В этом примере Я хотел бы спрятать сначала: строки 36-37-38
  • Во-вторых, Я хотел бы спрятать строки 49 - 57на основе столбца L без данных (в нем есть формулы: =IF(O49="","",A1))
  • В-третьих строки 60/68/70 должны быть скрыты
  • Аесли возможно строка 40 не должна быть удалена , даже если она не содержит никакой формулы / данных.

enter image description here

1 Ответ

0 голосов
/ 21 октября 2019

Чтобы программно скрыть строки с помощью Google Apps Script, вы можете использовать любую из функций hideRow(row), hideRows(rowIndex) и hideRows(rowIndex, numRows) (см. здесь ).

InДля того, чтобы удовлетворить ваши собственные потребности, я разработал следующий код:

var startRow = 27;
var colToCheck = 12; // Column L

function shouldHideRow(ss, rowIndex, rowValue) {
  if (rowValue != '') return false;
  if (ss.getRange(startRow + rowIndex, colToCheck, 1, 1).isPartOfMerge()) return false;
  if (ss.getRange(startRow + rowIndex + 1, colToCheck, 1, 1).isPartOfMerge()) return false;
  return true;
}

function myFunction() {
  var ss = SpreadsheetApp.getActive().getSheets()[0];
  var numRows = ss.getLastRow();
  var elements = ss.getRange(startRow, colToCheck, numRows).getValues();
  for (var i=0; i<(numRows - startRow); i++) {
    if (shouldHideRow(ss, i, elements[i][0])) {
      ss.hideRows(startRow + i);
    }
  }
  // Hide the rest of the rows
  var totalNumRows = ss.getMaxRows();
  if (totalNumRows > numRows)
    ss.hideRows(numRows+1, totalNumRows - numRows);
}

Условия, которые проверяют решение о том, скрывать ли строку или нет, следующие:

  • Если ячейка L строки не пуста, не скрывать.
  • Если ячейка L строки объединена, не скрывать.
  • Если ячейка L следующей строки имеет видобъединены, не скрываются.
  • В противном случае , скрыть.
...