Google表格及Apps Script中使用后如何清除过滤器?
嘿,我来帮你搞定这两个关于Google表格过滤器的问题——不管是手动清除表格里的过滤器,还是你在Apps Script里的数组过滤处理:
一、手动清除Google表格中的内置过滤器
如果你是在表格界面手动设置了过滤器,想要清除的话有几种简单方法:
- 选中带过滤器的任意单元格,点击工具栏上的漏斗图标(筛选按钮),点击后就能移除整个表格的过滤器。
- 右键点击带过滤器的单元格,在弹出菜单里选「移除过滤器」选项。
- 如果是给特定单元格范围设置的过滤器,点击该范围右上角的漏斗小图标,选择「清除范围的过滤器」就行。
二、Apps Script中的过滤操作“清理”说明
首先得明确:你写的这段代码是对内存里的数组做过滤,并没有修改Google表格本身的内置过滤器,也没改动表格里的原始数据。所以这里的“清理”要分两种情况:
1. 恢复原始数据引用
如果你需要后续再用到未过滤的原始数据,建议在过滤前先备份原始数组,这样随时能切换回去:
var ws = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("你的工作表名称"); // 先备份原始数据 var originalData = ws.getRange("B2:U" + ws.getLastRow()).getValues(); // 执行过滤操作,用新变量存结果,别覆盖原始数据 var filteredData = originalData.filter(function(r){ return r[19] == true }); // 后续需要“清理”时,直接使用originalData就能拿到未过滤的原始数据
2. 重置过滤后的变量
如果只是想让当前的data变量不再指向过滤后的数组,直接重置就好:
// 重新获取原始数据覆盖过滤后的结果 data = ws.getRange("B2:U" + ws.getLastRow()).getValues(); // 或者如果后续不用这个变量了,直接清空 data = null;
3. 脚本中移除表格内置过滤器
要是你在脚本里给表格设置了内置过滤器(不是数组过滤),想要移除的话,用这段代码:
// 移除整个工作表的过滤器(如果存在的话) if(ws.getFilter()) { ws.getFilter().remove(); } // 或者移除特定范围的过滤器 var targetRange = ws.getRange("B2:U" + ws.getLastRow()); if(targetRange.getFilter()) { targetRange.getFilter().remove(); }
内容的提问来源于stack exchange,提问作者whitejeep1953
相关产品推荐
相关产品推荐

