翼度科技»论坛 编程开发 .net 查看内容

C# 在Excel中添加、应用或删除筛选器 (日期筛选、文本筛选、数字筛选)

4

主题

4

帖子

12

积分

新手上路

Rank: 1

积分
12
自动筛选器是 Excel 中的一个基本但极其有用的功能,它可以让你根据特定的条件来自动隐藏和显示你的数据。当有大量的数据需要处理时,这个功能可以帮你快速找到你需要的信息,从未更加有效地分析和处理相关数据。
下面将介绍如何使用免费.NET Excel库在Excel中添加、应用和删除自动筛选器。包含以下五个示例:

  • C# 在Excel中添加自动筛选器
  • C# 在Excel中执行日期筛选
  • C# 在Excel中执行自定义数字筛选 
  • C# 在Excel中执行自定义文本筛选 
  • C# 删除Excel中的筛选器 
本文用到的免费.NET Excel库为 Free Spire.XLS for .NET。该库可以通过Nuget直接安装,或者下载后手动添加Dll到项目中。
(下载链接:https://www.e-iceblue.cn/Downloads/Free-Spire-XLS-NET.html
 
C# 在Excel中添加自动筛选器
  1. using Spire.Xls;
  2. namespace ExcelAutoFilter
  3. {
  4.     class Program
  5.     {
  6.         static void Main(string[] args)
  7.         {
  8.             //加载Excel文档
  9.             Workbook workbook = new Workbook();
  10.             workbook.LoadFromFile("库存.xlsx");
  11.             //获取第一张工作表
  12.             Worksheet sheet = workbook.Worksheets[0];
  13.             //在指定单元格区域的标题行创建自动筛选器
  14.             sheet.AutoFilters.Range = sheet.Range["A1:H1"];
  15.             //保存生成文件
  16.             workbook.SaveToFile("添加筛选器.xlsx", ExcelVersion.Version2016);
  17.         }
  18.     }
  19. }
复制代码
添加了自动筛选器后,每个被选中的列标题旁边都会出现一个箭头图标。点击这些箭头将会显示与该列相关的所有不同值的列表。效果图如下:

 
C# 在Excel中执行日期筛选
  1. using Spire.Xls;
  2. using Spire.Xls.Core;
  3. using Spire.Xls.Core.Spreadsheet.AutoFilter;
  4. namespace DateAutoFilter
  5. {
  6.     class Program
  7.     {
  8.         static void Main(string[] args)
  9.         {
  10.             //加载Excel文档
  11.             Workbook workbook = new Workbook();
  12.             workbook.LoadFromFile("库存.xlsx");
  13.             //获取第一张工作表
  14.             Worksheet sheet = workbook.Worksheets[0];
  15.             //在工作表中添加自动筛选器,并指定要筛选的范围
  16.             sheet.AutoFilters.Range = sheet.Range["A1:A25"];
  17.             //获取要筛选的列
  18.             IAutoFilter filtercolumn = sheet.AutoFilters[0];
  19.             //添加日期筛选器,筛选与2023年3月相关的数据
  20.             sheet.AutoFilters.AddDateFilter(filtercolumn, DateTimeGroupingType.Month, 2023, 3, 0, 0, 0, 0);
  21.             //执行筛选
  22.             sheet.AutoFilters.Filter();
  23.             //保存生成文件
  24.             workbook.SaveToFile("日期筛选.xlsx", ExcelVersion.Version2016);
  25.         }
  26.     }
  27. }
复制代码
如果需要对表格中某些日期的数据进行查看和处理,可以借助日期筛选来完成。以下是筛选与2023年3月相关的数据的效果图:

 
C# 在Excel中执行自定义数字筛选 
  1. using Spire.Xls;
  2. using Spire.Xls.Core.Spreadsheet.AutoFilter;
  3. namespace NumberAutoFilter
  4. {
  5.     class Program
  6.     {
  7.         static void Main(string[] args)
  8.         {
  9.             //加载Excel文档
  10.             Workbook workbook = new Workbook();
  11.             workbook.LoadFromFile("库存.xlsx");
  12.             //获取第一张工作表
  13.             Worksheet sheet = workbook.Worksheets[0];
  14.             //在工作表中添加自动筛选器,并指定要筛选的范围
  15.             sheet.AutoFilters.Range = sheet.Range["G1:G25"];
  16.             //获取要筛选的列
  17.             FilterColumn filtercolumn = (FilterColumn)sheet.AutoFilters[0];
  18.             //添加自定义筛选器,筛选150-200之间的数值
  19.             sheet.AutoFilters.CustomFilter(filtercolumn, FilterOperatorType.GreaterOrEqual, 150, true, FilterOperatorType.LessOrEqual, 200);
  20.             //执行筛选
  21.             sheet.AutoFilters.Filter();
  22.             //保存生成文件
  23.             workbook.SaveToFile("数字筛选.xlsx", ExcelVersion.Version2016);
  24.         }
  25.     }
  26. }
复制代码
使用自定义筛选来筛选数字可以设置大于、小于、介于等条件。以下是筛选出介于150-200之间的数值的效果图:

 
C# 在Excel中执行自定义文本筛选 
  1. using Spire.Xls;
  2. using Spire.Xls.Core.Spreadsheet.AutoFilter;
  3. namespace CustomAutoFilter
  4. {
  5.     class Program
  6.     {
  7.         static void Main(string[] args)
  8.         {
  9.             //加载Excel文档
  10.             Workbook workbook = new Workbook();
  11.             workbook.LoadFromFile("库存.xlsx");
  12.             //获取第一张工作表
  13.             Worksheet sheet = workbook.Worksheets[0];
  14.             //在工作表中添加自动筛选器,并指定要筛选的范围
  15.             sheet.AutoFilters.Range = sheet.Range["B1:B25"];
  16.             //获取要筛选的列
  17.             FilterColumn filtercolumn = (FilterColumn)sheet.AutoFilters[0];
  18.             //添加自定义筛选器,筛选以“Q型”开头的数据
  19.             string strCrt = "Q型*";
  20.             sheet.AutoFilters.CustomFilter(filtercolumn, FilterOperatorType.Equal, strCrt);
  21.             //执行筛选
  22.             sheet.AutoFilters.Filter();
  23.             //保存生成文件
  24.             workbook.SaveToFile("文本筛选.xlsx", ExcelVersion.Version2016);
  25.         }
  26.     }
  27. }
复制代码
自定义筛选还可以用来筛选指定文本,以下是筛选开头是“Q型”的文本的效果图:

 
C# 删除Excel中的筛选器 
  1. using Spire.Xls;
  2. namespace RemoveAutoFilter
  3. {
  4.     class Program
  5.     {
  6.         static void Main(string[] args)
  7.         {
  8.             //加载Excel文档
  9.             Workbook workbook = new Workbook();
  10.             workbook.LoadFromFile("添加筛选器.xlsx");
  11.             //获取第一张工作表
  12.             Worksheet sheet = workbook.Worksheets[0];
  13.             //移除该工作表中的筛选器
  14.             sheet.AutoFilters.Clear();
  15.             //保存生成文件
  16.             workbook.SaveToFile("删除Excel筛选器.xlsx", ExcelVersion.Version2016);
  17.         }
  18.     }
  19. }
复制代码
以上是在Excel中添加、删除自动筛选器,以及应用日期筛选、自定义数字和文本筛选的示例代码。除此之外,Free Spire.XLS for .NET免费库还提供了 AddFillColorFilter() 方法用于筛选单元格填充颜色、以及 AddFontColorFilter() 方法用于筛选字体颜色。
API文档:
https://www.e-iceblue.com/apireference/net/Spire.XLS/html/T_Spire_Xls_Collections_AutoFiltersCollection.htm
想了解Free Spire.XLS for .NET提供的其他操作Excel文档的功能,可点击其中文教程查看更多示例。

来源:https://www.cnblogs.com/Yesi/p/18215689
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

举报 回复 使用道具