#api #google-apps-script #google-sheets #google-sheets-api
Вопрос:
Вот моя функция просмотра «Удалить фильтр» и «Создать представление фильтра», которая работает, Но я хочу вызвать функцию «Создать представление фильтра» В своей функции просмотра «Удалить фильтр», если удалять нечего, как это сделать?
Я пытаюсь избежать этой ошибки, когда удалять нечего:
«Исключение GoogleJsonResponseException: вызов API sheets.spreadsheets.batchUpdate завершился ошибкой: Необходимо указать хотя бы один запрос.
Удалить просмотры фильтров @ Code.gs:108» // Удалить определенные просмотры фильтров
function deleteFilterViews(){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var id = ss.getId();
var myFilterViews = Sheets.Spreadsheets.get(id, {
ranges: 'Purchase Orders List',
fields: 'sheets/filterViews',
}).sheets[0].filterViews;
const regex = /(PO_Log Precentage)/gm; // This Deletes filter views named PO_Log Precentage
let unNamedViews = myFilterViews.filter(function(ele){return regex.exec(ele['title'])});
Sheets.Spreadsheets.batchUpdate({
requests: unNamedViews.map(function(e) {
return { deleteFilterView: { filterId: e['filterViewId'] } };
}),
},id);
};
Here Is My Create Filter View Function
function filter_view (){
const spreadsheetId = SpreadsheetApp.getActiveSpreadsheet();
const sheetId = spreadsheetId.getActiveSheet().getSheetId();
const addFilterViewRequest = [
{
'addFilterView' : {
filter : {
title : 'PO_Log Precentage', // Title Of filter view amp; make sure no space in title
range : {
sheetId : sheetId, // The filter view sheetId
'startRowIndex': 0,
'startColumnIndex':0,
}, // Using comma to seprate different conditional values
'criteria': {
2:{ // This number the column you are indexing in the spreadsheet
'condition': {
'type': "NUMBER_GREATER_THAN_EQ",
'values':[
{
"userEnteredValue" :'80%'
},// Using comma to seprate different conditional values 80 amp; 95
],
}
},1:{
'condition': {
'type' : "CUSTOM_FORMULA",
'values' : [
{
"userEnteredValue" : '=not(regexmatch($Q$2:$Q,"(?i)Close-Out|Cancelled"))'
}
],
}
}
}
}
}
}
]