Этот ответ устарел, см. Ответ @ Davide
Это ВОЗМОЖНО, с небольшим обманом :)
(Обновленный ответ: есть новый сервис Google, который это позволяет, см. Номер 2)
1 - Простой способ
Что ж, мне удалось это сделать так:
var row = 1 //the row with filter
var rowBefore = row
//insert a row before the filters
Sheet.insertRowBefore(row);
row++;
//move the filter row to the new row (this will move only content)
var Line = Sheet.getRange(row + ":" + row);
Line.moveTo(Sheet.getRange(rowBefore + ":" + rowBefore));
//delete the old row, which contains the filters - this clears the filters
Sheet.deleteRow(row);
//if the row was frozen before deletion, freeze the new row
Sheet.setFrozenRows(rowBefore);
2 - Использование Таблиц:
(Скопировано из https://issuetracker.google.com/issues/36753410, комментарий № 172 )
function clearFilter() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var ssId = ss.getId();
var sheetId = ss.getActiveSheet().getSheetId();
var requests = [{
"clearBasicFilter": {
"sheetId": sheetId
}
}];
Sheets.Spreadsheets.batchUpdate({'requests': requests}, ssId);
}
(Скопировано из комментария @AndreLung ниже)
Перейдите в Ресурсы, затем Расширенные службы Google, найдите API Google Таблиц и включите. также перейдите на console.cloud.google.com/apis/dashboard и включите Таблицы API
3 - Сложный путь: (оставил здесь, потому что написал, прежде чем подумать еще немного)
1 - Удалить первую строку (или строку, где есть кнопки фильтра)
Sheet.deleteRow(1);
2 - Вставьте еще раз :)
Sheet.insertRowBefore(1);
3 - Установите его заголовки
Sheet.getRange("A1").setValue("Hi there");
Sheet.getRange("B1").setValue("Here I am Again with no filter");
//alternatively
var LineVals = Sheet.getRange("1:1").getValues();
LineVals[0][0] = "Hi there";
LineVals[0][1] = "Here I am again";
LineVals[0][2] = "With no filters";
Sheet.getRange("1:1").setValues(LineVals);
//getValues is meant to keep the array exactly the size of the row
4 - Снова установите цвет линии:
//Cell color
Sheet.getRange("1:1").setBackground('#ff3300');
5 - Установите стили шрифта:
//I didn't test these ones....
Sheet.getRange("1:1").setFontColor....
Sheet.getRange("1:1").setFontFamily....
Sheet.getRange("1:1").setFontSize....
//Actually there are a lot of font options available....
6 - Если он был заморожен раньше, заморозьте его снова:
Sheet.setFrozenRows(1);
7 - И, наконец, если у них было NamedRanges
, подумайте о названии всего столбца вместо одной ячейки, чтобы ваши имена не пострадали.
person
Daniel Möller
schedule
27.05.2015