C#实现在Excel中添加筛选器并执行筛选的操作
作者:Eiceblue
自动筛选器是 Excel 中的一个基本但极其有用的功能,它可以让你根据特定的条件来自动隐藏和显示你的数据。当有大量的数据需要处理时,这个功能可以帮你快速找到你需要的信息,从未更加有效地分析和处理相关数据。
下面将介绍如何使用免费.NET Excel库在Excel中添加、应用和删除自动筛选器。
本文用到的免费.NET Excel库为 Free Spire.XLS for .NET。该库可以通过Nuget直接安装,或者下载后手动添加Dll到项目中。
下载链接:https://www.e-iceblue.cn/Downloads/Free-Spire-XLS-NET.html
C# 在Excel中添加自动筛选器
using Spire.Xls; namespace ExcelAutoFilter { class Program { static void Main(string[] args) { //加载Excel文档 Workbook workbook = new Workbook(); workbook.LoadFromFile("库存.xlsx"); //获取第一张工作表 Worksheet sheet = workbook.Worksheets[0]; //在指定单元格区域的标题行创建自动筛选器 sheet.AutoFilters.Range = sheet.Range["A1:H1"]; //保存生成文件 workbook.SaveToFile("添加筛选器.xlsx", ExcelVersion.Version2016); } } }
添加了自动筛选器后,每个被选中的列标题旁边都会出现一个箭头图标。点击这些箭头将会显示与该列相关的所有不同值的列表。效果图如下:
C# 在Excel中执行日期筛选
using Spire.Xls; using Spire.Xls.Core; using Spire.Xls.Core.Spreadsheet.AutoFilter; namespace DateAutoFilter { class Program { static void Main(string[] args) { //加载Excel文档 Workbook workbook = new Workbook(); workbook.LoadFromFile("库存.xlsx"); //获取第一张工作表 Worksheet sheet = workbook.Worksheets[0]; //在工作表中添加自动筛选器,并指定要筛选的范围 sheet.AutoFilters.Range = sheet.Range["A1:A25"]; //获取要筛选的列 IAutoFilter filtercolumn = sheet.AutoFilters[0]; //添加日期筛选器,筛选与2023年3月相关的数据 sheet.AutoFilters.AddDateFilter(filtercolumn, DateTimeGroupingType.Month, 2023, 3, 0, 0, 0, 0); //执行筛选 sheet.AutoFilters.Filter(); //保存生成文件 workbook.SaveToFile("日期筛选.xlsx", ExcelVersion.Version2016); } } }
如果需要对表格中某些日期的数据进行查看和处理,可以借助日期筛选来完成。以下是筛选与2023年3月相关的数据的效果图:
C# 在Excel中执行自定义数字筛选
using Spire.Xls; using Spire.Xls.Core.Spreadsheet.AutoFilter; namespace NumberAutoFilter { class Program { static void Main(string[] args) { //加载Excel文档 Workbook workbook = new Workbook(); workbook.LoadFromFile(@"E:\PythonExcel\库存1.xlsx"); //获取第一张工作表 Worksheet sheet = workbook.Worksheets[0]; //在工作表中添加自动筛选器,并指定要筛选的范围 sheet.AutoFilters.Range = sheet.Range["G1:G25"]; //获取要筛选的列 FilterColumn filtercolumn = (FilterColumn)sheet.AutoFilters[0]; //添加自定义筛选器,筛选150-200之间的数值 sheet.AutoFilters.CustomFilter(filtercolumn, FilterOperatorType.GreaterOrEqual, 150, true, FilterOperatorType.LessOrEqual, 200); //执行筛选 sheet.AutoFilters.Filter(); //保存生成文件 workbook.SaveToFile("数字筛选.xlsx", ExcelVersion.Version2016); } } }
使用自定义筛选来筛选数字可以设置大于、小于、介于等条件。以下是筛选出介于150-200之间的数值的效果图:
C# 在Excel中执行自定义文本筛选
using Spire.Xls; using Spire.Xls.Core.Spreadsheet.AutoFilter; namespace CustomAutoFilter { class Program { static void Main(string[] args) { //加载Excel文档 Workbook workbook = new Workbook(); workbook.LoadFromFile(@"E:\PythonExcel\库存1.xlsx"); //获取第一张工作表 Worksheet sheet = workbook.Worksheets[0]; //在工作表中添加自动筛选器,并指定要筛选的范围 sheet.AutoFilters.Range = sheet.Range["B1:B25"]; //获取要筛选的列 FilterColumn filtercolumn = (FilterColumn)sheet.AutoFilters[0]; //添加自定义筛选器,筛选以“Q型”开头的数据 string strCrt = "Q型*"; sheet.AutoFilters.CustomFilter(filtercolumn, FilterOperatorType.Equal, strCrt); //执行筛选 sheet.AutoFilters.Filter(); //保存生成文件 workbook.SaveToFile("文本筛选.xlsx", ExcelVersion.Version2016); } } }
自定义筛选还可以用来筛选指定文本,以下是筛选开头是“Q型”的文本的效果图:
C# 删除Excel中的筛选器
using Spire.Xls; namespace RemoveAutoFilter { class Program { static void Main(string[] args) { //加载Excel文档 Workbook workbook = new Workbook(); workbook.LoadFromFile("添加筛选器.xlsx"); //获取第一张工作表 Worksheet sheet = workbook.Worksheets[0]; //移除该工作表中的筛选器 sheet.AutoFilters.Clear(); //保存生成文件 workbook.SaveToFile("删除Excel筛选器.xlsx", ExcelVersion.Version2016); } } }
以上是在Excel中添加、删除自动筛选器,以及应用日期筛选、自定义数字和文本筛选的示例代码。除此之外,Free Spire.XLS for .NET免费库还提供了 AddFillColorFilter() 方法用于筛选单元格填充颜色、以及 AddFontColorFilter() 方法用于筛选字体颜色。
到此这篇关于C#实现在Excel中添加筛选器并执行筛选的操作的文章就介绍到这了,更多相关C# Excel添加筛选器并执行内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!