Google 一个值的脚本过滤器范围
Google Script Filter Range for one value
我想为第 1 列中仅包含特定值 "Bob" 的行筛选 google sheet 范围。到目前为止,我的代码允许我筛选 out 列 1 中有 Bob 的行。我需要相反,我想 return 列 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());
在您的示例案例中,您想排除 "Bob" 以外的值。如果我的理解是正确的,这个修改怎么样?
修改点:
- 使用
type
到filterCriteria
。
type
是 TEXT_CONTAINS
。并且值为 "Bob".
- 这样,只剩下包括"Bob"的值。
修改脚本:
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());
注:
- 此修改后的脚本假定您可以使用表格 API。
参考资料:
如果我误解了你的问题,请告诉我。我想修改一下。
我想为第 1 列中仅包含特定值 "Bob" 的行筛选 google sheet 范围。到目前为止,我的代码允许我筛选 out 列 1 中有 Bob 的行。我需要相反,我想 return 列 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());
在您的示例案例中,您想排除 "Bob" 以外的值。如果我的理解是正确的,这个修改怎么样?
修改点:
- 使用
type
到filterCriteria
。type
是TEXT_CONTAINS
。并且值为 "Bob".- 这样,只剩下包括"Bob"的值。
修改脚本:
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());
注:
- 此修改后的脚本假定您可以使用表格 API。
参考资料:
如果我误解了你的问题,请告诉我。我想修改一下。