IsRowHiddenByFilter(rowPosition) не возвращает true, пока строка скрыта

У меня есть таблица с фильтром по столбцу 2. Я хочу получить выбранные значения и распечатать их на боковой панели (html), чтобы пользователь мог скопировать идентификаторы.

Вот моя установка таблицы: У меня есть фильтр, и 32 первые строки невидимы (например, другие строки в остальной части таблицы).

У меня есть этот скрипт.gs:

function myFunction() {
  const sheet = SpreadsheetApp.getActiveSheet();

  // return "sheet 10, false"
  Logger.log(sheet.getName(), sheet.isRowHiddenByFilter(4))
}

Теперь моя проблема в том, что лист.isRowHiddenByFilter(rowIndex) всегда возвращает false, а строка № 4 скрыта моим фильтром.

В документации не добавляется дополнительная информация: https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet?hl=fr#isrowhiddenbyfilterrowposition

Я не смог найти другой скрипт, использующий «isRowHiddenByFilter».

Код довольно прост, в функции нет устаревших тегов, поэтому она должна работать правильно. Поскольку я использую новую систему таблиц, я не знаю, является ли она источником проблемы.

Я должен извиниться за мое плохое знание английского языка. К сожалению, я не могу понять Now, my problem is that the sheet.isRowHiddenByFilter(rowIndex) always returns false, while the row n°4 is hidden by my filter.. Чтобы правильно понять ваш вопрос, можете ли вы предоставить примеры выходных значений, которые вы ожидаете от отображаемого изображения? Во-первых, мне хотелось бы правильно понять Ваш вопрос.

Tanaike 11.08.2024 03:14
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
1
50
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

function myFunction() {
  const sheet = SpreadsheetApp.getSheetByName('Your sheet');

  // return "sheet 10, false"
  Logger.log(sheet.getName(), sheet.isRowHiddenByFilter(4))
}

Вы можете использовать метод getSheetByName()

Ответ принят как подходящий

isRowHiddenByFilter работает только с фильтрами:

Этот метод не работает для представлений фильтра и новой группы по представлению.

Обходной путь — активировать фильтр на панели инструментов Google Sheets или использовать раскрывающееся меню в заголовке столбца.

function myFunction() {
  const isHidden = SpreadsheetApp.getActiveSheet().isRowHiddenByFilter(2);
  Logger.log(isHidden);
}

/**
 * When running the above function it shows true when row 2  
 * is hidden by a filter and false when hidden by a filter view
 */

Привет. Это действительно работает. Большое спасибо ! Не имеет отношения к этой функции, но знаете ли вы, почему она не получает правильные значения, когда я фильтрую представление? Если я выберу значения «1» и «2» в столбце, я получу другие значения в том же столбце. const range = sheet.getSelection().getActiveRange(); const values = range.getDisplayValues();

tholeb 14.08.2024 18:47

@tholeb Я рад, что мой ответ тебе помог. Спасибо за подтверждение этого. Что касается вашего дополнительного вопроса, опубликуйте его как новый вопрос.

Wicket 14.08.2024 19:11

Другие вопросы по теме