本文介绍通过C#和VB.NET程序在Excel文档中添加筛选器并执行筛选的方法。 需要使用Excel类库工具Free Spire.XLS for .NET (免费版),可通过官网下载包,解压安装到指定路径,完成安装后,将安装路径下Bin文件夹下的Spire.Xls.dll文件添加引用到VS程序;或者可通过Nuget搜索下载。
dll文件引用效果如下:
C#/VB.NET在Excel中添加筛选器并执行筛选_第1张图片
Excel测试文档如下,包含多个数据列表,下面将通过代码筛选指定数据:
C#/VB.NET在Excel中添加筛选器并执行筛选_第2张图片

C#

using Spire.Xls;
using Spire.Xls.Collections;

namespace Filter_XLS
{
    class Program
    {
        static void Main(string[] args)
        {
            //创建Workbook对象,加载Excel文档
            Workbook workbook = new Workbook();
            workbook.LoadFromFile("test.xlsx");

            //获取第一个工作表
            Worksheet sheet = workbook.Worksheets[0];          

            //添加筛选器,并执行筛选
            AutoFiltersCollection filters = sheet.AutoFilters;//获取筛选器集合
            filters.Range = sheet.Range[1, 2, sheet.LastRow, 2];//设置筛选器的添加位置(第2列)       
            filters.AddFilter(0, "包1");//添加筛选器,指定筛选项
            filters.Filter();//执行筛选

            //保存文档
            workbook.SaveToFile("output.xlsx", ExcelVersion.Version2010);
            System.Diagnostics.Process.Start("output.xlsx");
        }
    }
}

筛选器添加结果:
C#/VB.NET在Excel中添加筛选器并执行筛选_第3张图片

VB.NET

Imports Spire.Xls
Imports Spire.Xls.Collections

Namespace Filter_XLS
    Class Program
        Private Shared Sub Main(args As String())
            '创建Workbook对象,加载Excel文档
            Dim workbook As New Workbook()
            workbook.LoadFromFile("test.xlsx")

            '获取第一个工作表
            Dim sheet As Worksheet = workbook.Worksheets(0)

            '添加筛选器,并执行筛选
            Dim filters As AutoFiltersCollection = sheet.AutoFilters
            '获取筛选器集合
            filters.Range = sheet.Range(1, 2, sheet.LastRow, 2)
            '设置筛选器的添加位置(第2列)       
            filters.AddFilter(0, "包1")
            '添加筛选器,指定筛选项
            filters.Filter()
            '执行筛选
            '保存文档
            workbook.SaveToFile("output.xlsx", ExcelVersion.Version2010)
            System.Diagnostics.Process.Start("output.xlsx")
        End Sub
    End Class
End Namespace