首页 > 编程语言 >C# 在Excel中添加、应用或删除筛选器 (日期筛选、文本筛选、数字筛选)

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

时间:2024-05-27 15:58:23浏览次数:24  
标签:sheet C# Spire Excel AutoFilters workbook 筛选

自动筛选器是 Excel 中的一个基本但极其有用的功能,它可以让你根据特定的条件来自动隐藏和显示你的数据。当有大量的数据需要处理时,这个功能可以帮你快速找到你需要的信息,从未更加有效地分析和处理相关数据。

下面将介绍如何使用免费.NET Excel库在Excel中添加、应用和删除自动筛选器。包含以下五个示例:

  1. C# 在Excel中添加自动筛选器
  2. C# 在Excel中执行日期筛选
  3. C# 在Excel中执行自定义数字筛选 
  4. C# 在Excel中执行自定义文本筛选 
  5. C# 删除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("库存.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("库存.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() 方法用于筛选字体颜色。

API文档:
https://www.e-iceblue.com/apireference/net/Spire.XLS/html/T_Spire_Xls_Collections_AutoFiltersCollection.htm

想了解Free Spire.XLS for .NET提供的其他操作Excel文档的功能,可点击其中文教程查看更多示例。

标签:sheet,C#,Spire,Excel,AutoFilters,workbook,筛选
From: https://www.cnblogs.com/Yesi/p/18215689

相关文章

  • 扫描的PDF图纸怎么转换为CAD文件?
    在工程项目中,我们经常需要将扫描的PDF图纸转换为CAD文件,以便进行更精确的编辑和修改。那么扫描的图纸怎么转CAD呢?以下将详细介绍三种将扫描的PDF图纸转换为CAD文件的方法,供您参考。方法一:使用专业的PDF转CAD软件这是最常见也最便捷的方法之一。市面上有许多专业的PDF转CAD软件,如......
  • appKey&appSecret 加密验签算法
    加密方式请求参数依次从a-z排列然后拼接后加入加密app_secret然后MD5加密即可得到签名字符串PHP示例privatestaticfunctiongenerateSign($params,$appSecret){ksort($params);$str='';foreach($paramsas$key=>$value){......
  • Springboot Redis 性能优化(基于 Lettuce)
    1.SpringbootRedis性能优化(基于Lettuce)1.1.为什么是Lettuce1.2.参数优化1.2.0.1.SpringbootRedis所有参数项1.2.1.最终参数配置1.SpringbootRedis性能优化(基于Lettuce)1.1.为什么是LettuceSpringboot2.x.x开始默认使用lettuce作为redis客户......
  • C# xml文档反序列化记事
    可以使用XmlSerializer直接序列化和反序列化xml反序列化如以下代码privateT?XmlDeseriallize<T>(stringfilePath){XmlSerializerserializer=newXmlSerializer(typeof(T));using(FileStreamfileStream=newFileStream(f......
  • 代码雨(coderain)源码(html5+css3+javascript,原创)
     大家看过黑客帝国的代码雨吗?本人自己写了一个,效果还可以。演示效果请见https://www.lanbaoshi.site/coderain.htm下面上代码:<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><htmlxmlns="htt......
  • MachineUnlearn 的一种方法
    MachineUnlearnMethod半白盒攻击LLMunlearning[1][2]可以视为RLHF的替代方案,用于消除LLM的幻觉,删除受版权保护的内容等,也可以视为事后防御策略,用于防止JailBreak在Eraser:JailbreakingDefense[2:1]文章中,作者直观地认为同一个问题的多个答案应当有相似之处......
  • dot net core使用BackgroundService运行一个后台服务
    不管是在控制台程序还是asp.netcore程序中,我们经常会有用到一个需要长时间运行的后台任务的需求。通常最直觉的方式是使用Thread实例来新建一个线程,但是这样需要自行管理线程的启动和停止。在.netcore中提供了一个继承自IHostedService的基类BackgroudService能够方便地实现一......
  • tp5 excel 导入数据到数据库
    1、引入包文件链接:https://pan.baidu.com/s/1TwtSXdQhj3B4m8NAuOcsVw?pwd=123a 提取码:123a2、包文件减压发在extend文件夹下在控制器中使用publicfunctionsave(){header("Access-Control-Allow-Origin:*");header("Access-Control-Allow-Methods:POST,......
  • 【OpenVINO™】在C#中使用 OpenVINO™ 部署 YOLOv10 模型实现目标
     最近YOLO家族又添新成员:YOLOv10,YOLOv10提出了一种一致的双任务方法,用于无nms训练的YOLOs,它同时带来了具有竞争力的性能和较低的推理延迟。此外,还介绍了整体效率-精度驱动的模型设计策略,从效率和精度两个角度对YOLOs的各个组成部分进行了全面优化,大大降低了计算开销,增强了......
  • Math Record
    T1.P3327知识点:莫比乌斯反演,数论分块我们知道\(d(ij)=\sum_{x|i}\sum_{y|j}[\gcd(x,y)==1]\)。所以我们就要求\(\sum^n_{i=1}\sum^m_{j=1}\sum_{x|i}\sum_{y|j}[\gcd(x,y)==1]\)。即为\(\sum^n_{i=1}\sum^m_{j=1}\lfloor\dfrac{n}{i}\rfloor\time......