Мне нужно получить значения диапазона для моей электронной таблицы - но только те строки, которые отображаются на основе выбранного в данный момент фильтра.
Я пытался использовать getValues()
на sheet.getFilter().getRange()
:
function applyOverdueFilter() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var filter1 = SpreadsheetApp.newFilterCriteria();
filter1.whenDateBefore(SpreadsheetApp.RelativeDate.TODAY);
sheet.getFilter().setColumnFilterCriteria(4, filter1.build());
var newData = sheet.getFilter().getRange().getValues(); // this doesn't work
Logger.log(newData);
}
Однако newData
содержит все данные в моей электронной таблице, а не только данные, отображаемые с применением фильтров.Как получить только отфильтрованные данные?
Примечания: на листе уже есть фильтр и все до тех пор, пока две последние строки не будут работать идеально.Причина, по которой я не хочу использовать фильтрацию массивов в JavaScript, заключается в том, что мои фильтры относятся к датам и относительным датам, которые намного проще фильтровать с помощью критериев фильтрации скрипта Apps.