Excel 中的筛选器是一种简单而有效的数据管理工具,尤其是在处理大型数据集时。通过使用自动筛选,您可以快速将关注范围缩小到特定的信息子集,从而更容易识别趋势、做出决策。完成分析后,您可能需要移除筛选器以恢复完整数据集的可见性。本文将介绍如何使用 Spire.XLS for .NET 通过 C# 在 Excel 中添加、应用和删除筛选器。
安装 Spire.XLS for .NET
首先,您需要将 Spire.XLS for .NET 包含的 DLL 文件作为引用添加到您的 .NET 项目中。DLL 文件可以从此链接下载,也可以通过 NuGet 安装。
PM> Install-Package Spire.XLS
在 Excel 单元格中添加筛选器
Spire.XLS for .NET 提供的 Worksheet.AutoFilters.Range 属性可用于在特定单元格区域应用自动筛选器。具体步骤如下:
- 创建一个 Workbook 类的对象。
- 使用 Workbook.LoadFromFile() 方法加载 Excel 示例文件。
- 使用 Workbook.Worksheets[] 属性获取指定工作表。
- 使用 Workheet.AutoFilters.Range 属性在指定单元格区域创建筛选器。
- 使用 Workbook.SaveToFile() 方法保存结果文件。
- C#
using Spire.Xls;
namespace AddAutoFilter
{
class Program
{
static void Main(string[] args)
{
//创建Workbook对象
Workbook workbook = new Workbook();
//加载Excel文件
workbook.LoadFromFile(@"C:\Users\Administrator\Desktop\数据.xlsx");
//获取第一张工作表
Worksheet sheet = workbook.Worksheets[0];
//在工作表中创建自动筛选器,并指定筛选范围
sheet.AutoFilters.Range = sheet.Range["A1:C1"];
//保存结果文件
workbook.SaveToFile("Excel筛选器.xlsx", ExcelVersion.Version2016);
}
}
}
在 Excel 中应用日期筛选
如果需要查看与特定日期或时间相关的信息,可以使用 Workbook.AutoFilters.AddDateFilter(IAutoFilter column, DateTimeGroupingType dateTimeGroupingType, int year, int month, int day, int hour, int minute, int second) 方法在指定单元格范围中应用日期筛选器。具体步骤如下:
- 创建一个 Workbook 类的对象。
- 使用 Workbook.LoadFromFile() 方法加载 Excel 示例文件。
- 使用 Workbook.Worksheets[] 属性获取指定工作表。
- 使用 Workbook.AutoFilters.Range 属性在指定单元格区域创建筛选器。
- 获取需要应用筛选的列,然后调用 Workbook.AutoFilters.AddDateFilter() 方法在该列中添加日期筛选器,以筛选出与指定年/月/日期等相关的数据。
- 使用 Workbook.AutoFilters.Filter() 方法应用筛选条件。
- 使用 Workbook.SaveToFile() 方法保存结果文件。
- C#
using Spire.Xls;
using Spire.Xls.Core;
using Spire.Xls.Core.Spreadsheet.AutoFilter;
namespace AddAutoFilter
{
class Program
{
static void Main(string[] args)
{
//创建Workbook对象
Workbook workbook = new Workbook();
//加载Excel文件
workbook.LoadFromFile(@"C:\Users\Administrator\Desktop\数据.xlsx");
//获取第一张工作表
Worksheet sheet = workbook.Worksheets[0];
//在工作表中创建自动筛选器,并指定筛选范围
sheet.AutoFilters.Range = sheet.Range["A1:A38"];
//获取要设置筛选的列
IAutoFilter filtercolumn = sheet.AutoFilters[0];
//添加日期筛选器,以筛选出与2022年5月相关的数据
sheet.AutoFilters.AddDateFilter(filtercolumn, DateTimeGroupingType.Month, 2022, 5, 0, 0, 0, 0);
//应用筛选条件
sheet.AutoFilters.Filter();
//保存结果文件
workbook.SaveToFile("Excel筛选日期.xlsx", ExcelVersion.Version2016);
}
}
}
在 Excel 中应用自定义筛选
Workbook.AutoFilters.CustomFilter(FilterColumn column, FilterOperatorType operatorType, Object criteria) 方法可允许您根据特定条件创建自定义筛选器。例如,您可以筛选包含特定文本的数据。具体步骤如下:
- 创建一个 Workbook 类的对象。
- 使用 Workbook.LoadFromFile() 方法加载 Excel 示例文件。
- 使用 Workbook.Worksheets[] 属性获取指定工作表。
- 使用 Workbook.AutoFilters.Range 属性在指定单元格区域创建筛选器。
- 获取需要应用筛选的列,然后使用 Workbook.AutoFilters.CustomFilter() 方法在该列中添加自定义筛选器,以筛选包含指定字符串的数据。
- 使用 Workbook.AutoFilters.Filter() 方法应用筛选条件。
- 使用 Workbook.SaveToFile() 方法保存结果文件。
- C#
using Spire.Xls;
using Spire.Xls.Core.Spreadsheet.AutoFilter;
namespace AddAutoFilter
{
class Program
{
static void Main(string[] args)
{
//创建Workbook对象
Workbook workbook = new Workbook();
//加载Excel文件
workbook.LoadFromFile(@"C:\Users\Administrator\Desktop\数据.xlsx");
//获取第一张工作表
Worksheet sheet = workbook.Worksheets[0];
//在工作表中创建自动筛选器,并指定筛选范围
sheet.AutoFilters.Range = sheet.Range["B1:B38"];
//获取要设置筛选的列
FilterColumn filtercolumn = (FilterColumn)sheet.AutoFilters[0];
//添加自定义筛选器,筛选出以"苏州"两个字开始的数据"
string strCrt = "苏州*";
sheet.AutoFilters.CustomFilter(filtercolumn, FilterOperatorType.Equal, strCrt);
//应用筛选条件
sheet.AutoFilters.Filter();
//保存结果文件
workbook.SaveToFile("Excel自定义筛选.xlsx", ExcelVersion.Version2016);
}
}
}
删除 Excel 中的筛选器
除了在 Excel 文件中添加自动筛选器外,Spire.XLS for .NET 还支持通过 Worksheet.AutoFilters.Clear() 方法删除 Excel 中的自动筛选器。具体步骤如下:
- 创建一个 Workbook 类的对象。
- 使用 Workbook.LoadFromFile() 方法加载 Excel 示例文件。
- 使用 Workbook.Worksheets[] 属性获取指定的工作表。
- 使用 Worksheet.AutoFilters.Clear() 方法删除工作表中的自动筛选器。
- 使用 Workbook.SaveToFile() 方法保存结果文件。
- C#
using Spire.Xls;
namespace AddAutoFilter
{
class Program
{
static void Main(string[] args)
{
//创建Workbook对象
Workbook workbook = new Workbook();
//加载Excel文件
workbook.LoadFromFile("Excel自定义筛选.xlsx");
//获取第一张工作表
Worksheet sheet = workbook.Worksheets[0];
//删除工作表中的筛选器
sheet.AutoFilters.Clear();
//保存结果文件
workbook.SaveToFile("清除筛选器.xlsx", ExcelVersion.Version2016);
}
}
}
申请临时 License
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。