如何在不删除Filter View的前提下一键取消Google Sheets所有列的筛选
解决方案:Google Sheets 一键清空 Filter View 筛选脚本
以下是可直接使用的 Google Apps Script 实现方案,支持自定义菜单一键操作,无需修改原有 Filter View 配置。
// 表格加载时自动生成自定义菜单 function onOpen() { const ui = SpreadsheetApp.getUi(); ui.createMenu('Unfilter 工具') .addItem('清空当前 Filter View 所有筛选', 'clearAllFilterViewCriteria') .addToUi(); } function clearAllFilterViewCriteria() { const activeSheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); const currentFilterViewId = activeSheet.getActiveFilterViewId(); // 未打开 Filter View 时提示 if (!currentFilterViewId) { SpreadsheetApp.getUi().alert('请先打开需要清空筛选的 Filter View'); return; } // 匹配当前激活的 Filter View const targetFilterView = activeSheet.getFilterViews().find(item => item.getFilterViewId() === currentFilterViewId); const filter = targetFilterView.getFilter(); if (!filter) { SpreadsheetApp.getUi().alert('当前 Filter View 无生效的筛选条件'); return; } const filterRange = filter.getRange(); const startColumn = filterRange.getColumn(); const totalColumns = filterRange.getNumColumns(); // 遍历所有列清除筛选条件 for (let col = startColumn; col < startColumn + totalColumns; col++) { if (filter.getColumnFilterCriteria(col)) { filter.removeColumnFilterCriteria(col); } } SpreadsheetApp.getUi().alert('已清空当前 Filter View 所有筛选条件,所有列已恢复全选状态'); }
部署步骤
- 打开目标 Google Sheets 表格,点击顶部菜单栏「扩展程序」>「Apps 脚本」进入脚本编辑器
- 删除编辑器内默认的空代码片段,将上述代码完整粘贴到编辑区
- 点击页面顶部保存按钮,自定义项目名称(如「筛选快捷工具」)后确认保存
- 刷新原有表格页面,等待几秒后顶部菜单栏会出现新增的「Unfilter 工具」菜单,首次点击菜单选项时按指引完成脚本授权即可正常使用
功能说明
- 仅对当前处于打开状态的 Filter View 生效,不会修改、删除其他 Filter View 或表格原生筛选配置
- 执行后所有列筛选规则自动重置为全选状态,Filter View 本身完全保留,无需重新创建
- 无生效 Filter View 时点击会自动提示,不会误操作修改表格数据
内容的提问来源于stack exchange,提问作者Nuno Miguel
相关产品推荐
相关产品推荐

