C#/VB.NET在Excel中添加筛选器并执行筛选

本文介绍通过C#和VB.NET程序在Excel文档中添加筛选器并执行筛选的方法。 需要使用Excel类库工具Free Spire.XLS for .NET,可通过官网 下载包,解压安装到指定路径,完成安装后,将安装路径下Bin文件夹下的Spire.Xls.dll文件添加引用到VS程序;或者可通过 Nuget搜索下载。

dll文件引用效果如下:


Excel测试文档如下,包含多个数据列表,下面将通过代码筛选指定数据:


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");
        }
    }
}

筛选器添加结果:


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



请使用浏览器的分享功能分享到微信等