我正在努力通过Google Apps Script设置过滤器。从我的研究中,我得出结论,尽管
在下面的示例代码中,我选择在第12列(L)中排除值One、Two、Three、Five、Six和Seven。如果该列中只有七个值,则应返回一个仅包含"L"列中的"Four"的筛选数据集。
如果只能使用
.setVisibleValues()
被列为可用选项,但它目前还不受支持。唯一可编程筛选列的方法是使用.setHiddenValues()
。这会带来挑战,因为可能需要隐藏数百个值。在下面的示例代码中,我选择在第12列(L)中排除值One、Two、Three、Five、Six和Seven。如果该列中只有七个值,则应返回一个仅包含"L"列中的"Four"的筛选数据集。
function testFilter() {
var spreadsheet = SpreadsheetApp.getActive();
var criteria = SpreadsheetApp.newFilterCriteria()
.setHiddenValues(['One', 'Two', 'Three', 'Five', 'Six', 'Seven'])
.build();
spreadsheet.getActiveSheet().getFilter().setColumnFilterCriteria(12, criteria);
};
如果只能使用
.setHiddenValues()
,我的想法是构建一个排除某些值的项目列表。换句话说,如果L列中的值不等于“Four”,则在.setHiddenValues()
列表中包含。我想这将需要一个循环,但我想知道你们的想法。我对GAS还比较新,不确定如何构建高效的循环来完成此操作。是否有更好的设置筛选器的方法?