Мне удалось написать функцию R с помощью API setBasicFilter API листов Google, который включает базовый фильтр для диапазона ячеек, указанного пользователем. Однако, когда пользователь пытается «Фильтровать по значениям», никакие значения не отображаются.
Кажется, что эта функция работает нормально в том смысле, что зеленая стрелка фильтра (или кнопка справа от ячеек, которые вы используете для фильтрации) включается в нужных мне листах (вкладках) и диапазоне ячеек. ,Я не понимаю, почему, когда я нажимаю на него, создается впечатление, что в столбце нет значений для фильтрации. Это абсолютно пусто, но в столбце есть данные!
Я подумал, что, возможно, он устанавливает фильтр поверх фильтра, и попытался сначала использовать clearBasicFilter перед отправкой setBasicFilter, но это не сработало.
Я попытался записать данные на листзатем включите фильтр и, наоборот, включите фильтр и затем запишите данные. По-прежнему выглядит так, как будто не было значений для фильтрации (хотя данные есть).
По сути, я пытаюсь достичь при записи данных на лист:
- Удалите все имеющиеся базовые фильтры.
- Запишите данные.
- Снова включите кнопки фильтров (в диапазоне, указанном пользователем функции).
Вот как выглядит мой вызов:
# for each row in the param table create a json body
for(row in nrow(param)){
body <- paste0('{"requests": [
{
"setBasicFilter": {
"filter": {
"range":{"sheetId": ', param$sheetId,
', "startRowIndex": ', param$startRow,
', "endRowIndex": ', param$endRow,
', "startColumnIndex": ', param$startCol,
', "endColumnIndex": ', param$endCol,
'}}}}]}')
}
Где таблица параметров выглядит следующим образом (и создается на основе входных данных пользователя для функции:
|sheetName |startRow |endRow |startCol |endCol |sheetId |
|:---------|:--------|:------|:--------|:------|:-----------|
|Sheet1 |1 |0 |0 |11 |someId |
|Sheet2 |0 |0 |0 |11 |someOtherId |
НесколькоСоздаются тела json, а затем я выполняю вызов с помощью метода batchUpdate от Google.
Я не получаю никаких ошибок, и фильтр включается там, где он мне нужен. Я хотел бы иметь возможность:
- Перейти к листу, на котором я только что включил фильтр
- Нажмите зеленую стрелку фильтра (которая уже будет в указанном диапазоне ячеек)
- И посмотрите списокиз всех возможных значений я могу отфильтровать этот столбец по
Прошу прощения за такое длинное описание. Я пытался быть максимально конкретным.