如何清除或删除 Excel 中的筛选器:6 种方法

Excel 的筛选功能可以帮助你快速聚焦于工作表中的特定记录。但在准备共享报表或需要重新查看完整数据时,当前的筛选条件可能会隐藏部分重要数据,表头中的筛选箭头也可能已经没有保留的必要。

在 Excel 中,清除筛选器删除筛选器并不是完全相同的操作。你可能只是想清除某一列的筛选条件,也可能需要恢复整个工作表中的数据、彻底关闭筛选功能,或者批量处理多个工作表和多个 Excel 文件。本文将介绍 6 种实用方法,涵盖 Excel 桌面版、Excel 网页版、VBA 和 C#。

清除筛选器和删除筛选器有什么区别

清除 Excel 筛选器和删除筛选器是两个不同的操作。理解两者的区别,可以避免在恢复完整数据视图时误删原本还需要保留的筛选按钮。

操作 作用 筛选箭头
清除筛选器 清除当前筛选条件,并重新显示因筛选而隐藏的数据 保留
删除筛选器 关闭筛选功能,并移除筛选控件 移除

如何选择:

  • 如果只是想恢复当前数据视图,并且之后还要继续使用筛选,请选择 清除筛选器
  • 如果不再需要当前区域的筛选功能,希望同时去掉筛选箭头,请选择 删除筛选器

第 1 部分:Excel 桌面版和网页版的常用方法

如果你正在 Excel 桌面版或网页版中处理工作簿,可以优先使用下面几种手动方法。

说明: 以下操作同时适用于普通单元格区域和 Excel 表格。

方法 1:清除单列的筛选条件

如果多个列都设置了筛选条件,例如“国家”和“年份”,但你只想取消其中某一列的筛选,同时保留其他列的筛选条件,可以使用此方法。

操作步骤

  1. 点击已筛选列标题中的 筛选 图标。

  2. 选择 从“[列名]”中清除筛选

    在 Excel 中清除指定列的筛选条件

快捷操作

  • Windows: 选中已筛选列的标题单元格,按 Alt + ↓ 打开筛选菜单,然后按 C
  • Mac: 选中标题单元格,按 Option + ↓ 打开筛选菜单,然后选择 清除筛选

结果: Excel 会重新显示因该列筛选条件而隐藏的行,其他列上的筛选条件不受影响。

Excel 清除单列筛选后的数据结果

提示: 如果无法点击筛选图标,请检查工作表是否受到保护。工作表保护可能会限制清除或修改筛选条件。

方法 2:清除工作表中的所有筛选条件

当工作表中的多个列都应用了筛选,而你希望一次恢复显示完整数据,同时继续保留表头中的筛选按钮时,可以使用此方法。

操作步骤

  1. 打开 Excel 功能区中的 数据 选项卡。

  2. 排序和筛选 组中,点击 清除

    (也可以点击 开始 > 排序和筛选 > 清除

    在 Excel 数据选项卡中点击清除筛选

快捷键

  • Windows: 依次按 Alt + A + C
  • Mac: Excel for Mac 没有对应的原生快捷键,可以使用上面的功能区按钮操作。

结果: Excel 会重新显示当前工作表中因筛选而隐藏的行,同时保留标题行中的筛选下拉箭头。

Excel 清除所有筛选条件后的工作表

方法 3:彻底关闭筛选并移除筛选箭头

如果你不再需要当前数据区域的筛选功能,希望同时取消已有筛选条件并移除标题行中的下拉箭头,可以直接关闭 筛选

操作步骤

  1. 点击数据区域中的任意单元格。

  2. 打开 Excel 功能区中的 数据 选项卡。

  3. 排序和筛选 组中,再次点击 筛选 按钮(漏斗图标)将其关闭。

    (也可以点击 开始 > 排序和筛选 > 筛选

    在 Excel 中关闭筛选功能

快捷键

  • Windows:Ctrl + Shift + L
  • Mac:Cmd + Shift + F

结果: Excel 会清除当前筛选条件,重新显示因筛选而隐藏的行,并移除标题行中的筛选下拉箭头。

Excel 删除筛选和筛选箭头后的工作表

注意事项:

  • 删除筛选只会影响筛选设置,不会删除单元格格式或条件格式。如果还需要清理工作表中的条件格式规则,可以参考教程:如何删除 Excel 中的条件格式
  • 删除筛选只是关闭 AutoFilter 功能,不会删除、隐藏或修改源数据。手动隐藏的行不会因为清除或删除筛选而自动显示。

方法 4:在 Excel 网页版中清除或删除筛选器

如果电脑上没有安装 Excel 桌面版,或者你更习惯直接在浏览器中处理工作簿,也可以使用 Excel 网页版清除筛选条件或关闭筛选功能。

操作步骤

  1. 点击已筛选数据区域中的任意单元格。

  2. 打开功能区中的 数据 选项卡。

  3. 根据需要选择操作:

    • 清除筛选条件: 点击 清除
    • 彻底删除筛选: 点击 筛选 按钮,将筛选功能关闭。

协作提示:

如果共享工作簿存储在 OneDrive 或 SharePoint 中,当你更改筛选条件时,Excel 可能会询问是仅将更改应用到自己,还是应用到所有人。选择 “仅查看我的内容(See Just Mine)”,可以在单独的工作表视图(Sheet View)中进行筛选,而不会影响其他协作者看到的数据。

第 2 部分:使用 VBA 和 C# 自动处理筛选

手动操作适合处理单个工作簿。如果需要反复清除多个工作表或多个文件中的筛选器,使用 VBA 或 C# 可以减少大量重复操作。

方法 5:使用 VBA 清除所有工作表中的筛选条件

下面的 VBA 宏会检查当前工作簿中的每个工作表,清除普通单元格区域和 Excel 表格中的活动筛选条件,同时保留现有的 AutoFilter 筛选按钮。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Sub ClearFiltersFromAllWorksheets()
Dim ws As Worksheet
Dim tbl As ListObject

For Each ws In ThisWorkbook.Worksheets
' 清除普通单元格区域中的筛选
If ws.FilterMode Then
ws.ShowAllData
End If

' 清除 Excel 表格中的筛选
For Each tbl In ws.ListObjects
If Not tbl.AutoFilter Is Nothing Then
tbl.AutoFilter.ShowAllData
End If
Next tbl
Next ws
End Sub

使用方法

  1. Alt + F11(Windows)或 Option + F11(Mac)打开 VBA 编辑器。

  2. 点击顶部菜单中的 插入 > 模块

  3. 将上面的宏代码粘贴到代码窗口中。

  4. F5 运行宏;也可以关闭编辑器,然后按 Alt + F8(Windows)或 Option + F8(Mac)打开宏列表并运行。

⚠️ 重要提醒:

运行 VBA 宏会清空 Excel 的撤销历史,因此宏执行后的更改通常无法通过 Ctrl + Z 撤销。建议先在工作簿的备份副本上测试。如果希望保留宏代码,请将文件保存为 Excel 启用宏的工作簿(.xlsm)

如果执行后不再需要 VBA 代码,也可以在共享文件之前删除 Excel 工作簿中的宏

方法 6:使用 C# 批量删除多个 Excel 文件中的筛选器

虽然 VBA 很方便,但它仍然依赖 Excel 桌面环境,并且通常需要手动运行。

对于批处理或服务器端工作流,逐个打开工作簿并手动清除筛选并不现实。下面的 C# 示例使用 Spire.XLS for .NET,无需启动 Microsoft Excel 或使用 Office Interop,即可批量删除 Excel 自动筛选器

第 1 步:安装 Excel 库

可以通过 NuGet 包管理器安装:

1
Install-Package Spire.XLS

也可以使用 .NET CLI:

1
dotnet add package Spire.XLS

第 2 步:使用 C# 批量删除筛选

下面的程序会读取输入目录中的 Excel 文件,遍历每个工作表,同时删除普通单元格区域和 Excel 表格中的筛选器及筛选箭头,然后将处理后的工作簿保存到目标文件夹。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
using System;
using System.IO;
using Spire.Xls;

class Program
{
static void Main(string[] args)
{
// 定义输入和输出目录
string inputFolder = @"C:\ExcelFiles\Input";
string outputFolder = @"C:\ExcelFiles\Output";

// 如果输出目录不存在,则创建目录
if (!Directory.Exists(outputFolder))
{
Directory.CreateDirectory(outputFolder);
}

// 获取输入目录中的 Excel 文件
string[] excelFiles = Directory.GetFiles(inputFolder, "*.xl*");

Console.WriteLine($"找到 {excelFiles.Length} 个待处理文件。");

foreach (string file in excelFiles)
{
Workbook workbook = new Workbook();

try
{
// 加载 Excel 文件
workbook.LoadFromFile(file);

// 遍历工作簿中的所有工作表
foreach (Worksheet sheet in workbook.Worksheets)
{
// 删除普通单元格区域中的 AutoFilter
sheet.AutoFilters.Clear();

// 删除 Excel 表格中的 AutoFilter
for (int i = 0; i < sheet.ListObjects.Count; i++)
{
var table = sheet.ListObjects[i];
table.AutoFilters.Clear();
}
}

// 构建输出路径并保存文件
string fileName = Path.GetFileName(file);
string outputPath = Path.Combine(outputFolder, fileName);

workbook.SaveToFile(outputPath);

Console.WriteLine(
$"已成功删除筛选:{fileName}");
}
catch (Exception ex)
{
Console.WriteLine(
$"处理文件 {Path.GetFileName(file)} 时出错:{ex.Message}");
}
finally
{
workbook.Dispose();
}
}

Console.WriteLine("批量处理完成。");
}
}

故障排查:

  • 受密码保护或加密的 Excel 文件在加载时会抛出异常,需要在 LoadFromFile 方法中提供相应密码。

许可说明: 试用版可能会在生成的工作簿中添加 Evaluation Warning 工作表。你可以申请临时许可证以移除此提示。

总结:应该选择哪种方法

最合适的方法主要取决于需要清理的范围、是否希望继续保留筛选功能,以及需要处理多少个工作表或文件。

方法 适用场景 是否保留筛选箭头 难度
1. 清除单列筛选 只调整某一列,同时保留其他列的筛选结果 初级
2. 清除所有筛选条件 快速恢复当前工作表的完整数据视图 初级
3. 彻底删除筛选 准备不再需要筛选控件的干净报表 初级
4. Excel 网页版 在浏览器中处理文件或进行在线协作 取决于具体操作 初级
5. VBA 宏 在当前工作簿中重复清理筛选条件 中级
6. C# 批量处理 批量或服务器端处理 Excel 文件 高级

对于大多数日常 Excel 操作,方法 1–4 通常已经足够。当需要反复处理多个工作表或多个文件,手动操作开始变得低效时,再考虑使用 VBA 或 C# 会更合适。

常见问题解答

Q1:为什么“数据 > 清除”按钮是灰色的?

A1:当工作表中没有需要清除的活动筛选条件时,数据 > 清除 命令会不可用。此时标题行中的筛选箭头仍可能存在,因为筛选功能本身仍处于开启状态。

Q2:可以隐藏 Excel 表格中的筛选箭头吗?

A2:可以。点击表格中的任意单元格,打开 表设计 选项卡,然后取消勾选 筛选按钮。该方法只隐藏筛选箭头,不会恢复显示被筛选掉的数据。如果你希望显示全部数据,建议使用 数据 > 清除

Q3:清除筛选器会删除隐藏的行吗?

A3:不会。筛选只是隐藏不符合当前条件的行,并不会删除这些数据。清除或删除筛选器后,由筛选器隐藏的行会重新显示;手动隐藏的行仍会保持隐藏状态。

Q4:可以只删除 Excel 某一列的筛选功能吗?

A4:不可以。你可以单独清除某一列的筛选条件,但无法只关闭筛选区域中某一列的筛选功能。筛选功能是针对整个数据区域启用或关闭的。如果不希望某一列参与筛选,可以考虑将该列隐藏。