我正在努力通过 Google Apps 脚本设置过滤器。根据我的研究,我得出的结论是,虽然.setVisibleValues()列为可用,但尚不受支持。以编程方式过滤列的唯一方法是使用.setHiddenValues(). 这提出了一个挑战,因为可能有数百个值需要隐藏。
在下面的示例代码中,我选择排除第 12 (L) 列中的值一、二、三、五、六和七。如果该列中只有七个值,则应该返回一个过滤后的数据集,列 L 中只有“四个”。
function testFilter() {
var spreadsheet = SpreadsheetApp.getActive();
var criteria = SpreadsheetApp.newFilterCriteria()
.setHiddenValues(['One', 'Two', 'Three', 'Five', 'Six', 'Seven'])
.build();
spreadsheet.getActiveSheet().getFilter().setColumnFilterCriteria(12, criteria);
};
Run Code Online (Sandbox Code Playgroud)
如果使用.setHiddenValues()是唯一的方法,我的想法是构建一个项目列表以排除不包含某个或多个特定值的项目。换句话说,如果 L 列中的值不等于“四”,则包含在.setHiddenValues(). 我想这将需要一个循环,但我想看看想法是什么。我对 GAS 相当陌生,所以我不确定如何构建一个有效的循环来实现这一点。有没有更好的方法来设置过滤器?