本文介绍通过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
来源:oschina
链接:https://my.oschina.net/u/4324904/blog/4527632