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