我想为第1列中仅包含特定值“ Bob”的行筛选一个Google表格范围。到目前为止,我的代码可以让我滤除行中具有Bob的行1.我需要相反的是,我想返回第1列中只有“ Bob”的行。因此,在filterSettings不是hiddenValues或类似
的地方
“ filterSettings ['criteria'] [columnIndex] ==! {'hiddenValues':[filterCriteria]”
我的查询与this one类似,但是我不想排除带有过滤条件的行,我希望这些是剩下的唯一行。
Code.gs
var ss = SpreadsheetApp.getActiveSpreadsheet();
var filterCriteria = 'Bob';
var filterSettings = {};
filterSettings.range = {
sheetId: ss.getSheetByName('Sheet1').getSheetId()
};
filterSettings.criteria = {};
var columnIndex = 0;
filterSettings['criteria'][columnIndex] = {
'hiddenValues': [filterCriteria]
};
var request = {
setBasicFilter: {
filter: filterSettings
}
};
Sheets.Spreadsheets.batchUpdate({'requests': [request]}, ss.getId());
答案 0 :(得分:2)
在示例情况下,您要排除“鲍勃”以外的值。如果我的理解是正确的,那么该修改如何?
type
至filterCriteria
。
type
是TEXT_CONTAINS
。值是“鲍勃”。var ss = SpreadsheetApp.getActiveSpreadsheet();
var filterCriteria = {"type":"TEXT_CONTAINS","values":[{"userEnteredValue":"Bob"}]}; // Modified
var filterSettings = {};
filterSettings.range = {sheetId: ss.getSheetByName('Sheet1').getSheetId()};
filterSettings.criteria = {};
var columnIndex = 0;
filterSettings['criteria'][columnIndex] = {'condition': filterCriteria}; // Modified
var request = {setBasicFilter: {filter: filterSettings}};
Logger.log(JSON.stringify({'requests': [request]}))
Sheets.Spreadsheets.batchUpdate({'requests': [request]}, ss.getId());
如果我误解了您的问题,请告诉我。我想修改它。