C# 在Excel中添加筛选器并执行筛选 (日期筛选、文本筛选、数字筛选)

news2025/1/18 3:28:09

自动筛选器是 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中添加自动筛选器

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() 方法用于筛选字体颜色。

API文档:AutoFiltersCollection Classicon-default.png?t=N7T8https://www.e-iceblue.com/apireference/net/Spire.XLS/html/T_Spire_Xls_Collections_AutoFiltersCollection.htm

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1674634.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

depcheck检查项目中未被使用的依赖

depcheck是一个用于分析项目中依赖项的工具,可以查看:每个依赖项是如何使用的,哪些依赖项是无用的,以及哪些依赖项在package.json 1、安装 npm install -g depcheck # 必须全局安装2、可配置文件.depcheckrc(不配置 直…

SCP收容物171~180

注 :此文接SCP收容物161~170,本文只供开玩笑 ,与steve_gqq_MC合作 --------------------------------------------------------------------------------------------------------------------------------- 目录 scp-171 scp-172 scp-173 scp-174 scp-175 …

第五十八节 Java设计模式 - 适配器模式

Java设计模式 - 适配器模式 我们在现实生活中使用适配器很多。例如,我们使用存储卡适配器连接存储卡和计算机,因为计算机仅支持一种类型的存储卡,并且我们的卡与计算机不兼容。 适配器是两个不兼容实体之间的转换器。适配器模式是一种结构模…

MySQL用SQL取三列中最大的数据值

1、有如下数据: ABC000097.0600330.72330.720069.650027.8827.85086.92086.92219.42219.4219.41 需要展示为如下形式: ABC结果列0000097.06097.060330.72330.72330.7200669.65009.6527.8827.85027.8886.92086.9286.92219.42219.4219.41219.42 解决办…

OpenText ETX 助力 SMS 集团提高生产力、降低成本并实现全球协作

OpenText ETX 助力 SMS 集团提高生产力、降低成本并实现全球协作 SMS 集团存在的挑战 需要一个可以在全球范围内轻松访问的解决方案;需要一个系统,能够无缝运行图形要求苛刻的基于服务器的应用程序; 结果 1、通过全球用户访问数据&#x…

x264 帧类型代价计算原理:slicetype_slice_cost 函数分析

x264 x264 是一个开源的视频编码库,它实现了H.264/AVC标准。H.264是一种广泛使用的压缩标准,用于视频流、视频下载、蓝光光盘以及许多其他形式的数字视频分发。x264 以其高压缩效率和良好的视频质量而著称,是许多视频编辑软件和视频播放器的默认编解码器。 以下是关于 x26…

做一个属于自己的软件-pyside6快速上手教程

首先环境需要安装python3和pip,软件使用pycharm,安装也都很简单 首先需要安装pyside6,在终端执行: pip install pyside6 然后进入可视化编辑界面 pyside6-designer 进入后创建即可 可以从左侧点击鼠标拉组件进入到中间的工作区&#xff…

服务器通的远程桌面连接不上,关于服务器通畅但远程桌面连接不上问题的专业分析

在日常的企业IT管理中,服务器远程桌面连接是一个重要的操作功能。然而,有时会出现服务器网络通畅,但远程桌面无法连接的情况。 问题分析 1. 防火墙或安全组设置问题:服务器的防火墙或安全组可能阻止了远程桌面连接的端口&#xf…

人工神经网络(科普)

人工神经网络(Artificial Neural Network,即ANN ),是20世纪80 年代以来人工智能领域兴起的研究热点。它从信息处理角度对人脑神经元网络进行抽象, 建立某种简单模型,按不同的连接方式组成不同的网络。在工程…

关于使用git拉取gitlab仓库的步骤(解决公钥问题和pytho版本和repo版本不对应的问题)

先获取权限,提交ssh-key 虚拟机连接 GitLab并提交代码_gitlab提交mr-CSDN博客 配置完成上诉步骤之后,执行下列指令进行拉去仓库的内容 sudo apt install repo export PATHpwd/.repo/repo:$PATH python3 "实际路径"/repo init -u ssh://gitxx…

JVM调优工具命令详解(JVM调优看这一篇就够了)

Jmap 此命令可以用来查看内存信息,实例个数以及占用内存大小 1 jmap ‐histo 14660 #查看历史生成的实例 2 jmap ‐histo:live 14660 #查看当前存活的实例,执行过程中可能会触发一次full gc 打开log.txt,文件内容如下: num:序号 instances:实例数量 bytes:占用空间大小 class…

PostgreSQL源码安装

文章目录 一、先决条件检查二、源码安装1、获取源代码2、编译安装1.运行 configure2.运行make 3、PostgreSQL的配置4、安装contrib目录下的工具 三、初始化数据库1、创建数据库管理员2、创建数据库实例3、启动和停止数据库4、设置数据库密码 四、PostgreSQL的简单配置1、pg_hba…

重新定义社交:Facebook的未来愿景与颠覆力量

在当今数字化社会中,Facebook作为全球最大的社交媒体平台,其未来愿景和颠覆力量备受关注。本文将深入探讨Facebook如何重新定义社交,以及其未来发展中的新趋势和影响。 1. 智能化社交体验 Facebook致力于利用人工智能技术提供更智能、个性化…

智慧公厕的未来价值分析和创新设计

智慧公厕正在逐渐成为现代城市建设的重要组成部分。通过全面的数据云端化和自动化技术,智慧公厕实现了高效的数据分析和协作,提升了运行效率和管理水平。未来,智慧公厕将以“景厕融合”的目标发展,结合前沿科技和创新设计&#xf…

数据仓库作业六:第9章 分类规则挖掘

目录 第9章 分类规则挖掘第一题第二题第三题第四题 第9章 分类规则挖掘 第一题 1、设网球俱乐部有打球与气候条件的历史统计数据如下表1所示。它有“天气”、“气温”、“适度”和“风力”4个描述气候的条件属性,类别属性为“是”与“否”的二元取值,分…

【八大排序算法】插入排序、希尔排序、选择排序、堆排序、冒泡排序、快速排序、归并排序、计数排序

文章目录 一、排序的相关概念二、排序类型三、排序算法实现插入排序1.直接插入排序2.希尔排序 选择排序3.简单选择排序4.堆排序 交换排序5.冒泡排序6.快速排序递归实现非递归实现 7.归并排序递归实现非递归实现 8.计数排序 四、总结 一、排序的相关概念 排序:根据数…

护照OCR识别接口如何对接

护照OCR识别接口也叫护照文字识别OCR,指的是传入护照照片,精准识别静态护照图像上的文字信息,包括姓名、签发地点、签发机关、护照号码、签发日期等信息。那么护照文字识别OCR接口如何对接呢? 首先我们找到一家有护照OCR识别接口的服务商数脉…

618购物狂欢,爆款清单来袭!这些好物你绝对不能错过!

一年一度的618购物狂欢,无疑是每年消费者们翘首以盼的盛大节日。每到618,各大电商平台纷纷推出诱人的优惠活动,琳琅满目的商品让人眼花缭乱。在这个充满惊喜与期待的时刻,我们为您精心挑选了一份爆款清单,这些好物不仅…

java02

泛型 泛型&#xff1a;编译时检查类型是不是正确&#xff0c;减少类型转换造成的错误。 代码复用性提升。 1.泛型类 T是类型形参&#xff0c;创建对象时传入类型实参。 如果不指定类型&#xff0c;按照object类型处理。不支持基本数据类型。 class Student<T>{ pr…

【C++】 类的新成员:static成员和类的好朋友:友元

欢迎来到CILMY23的博客 &#x1f3c6;本篇主题为&#xff1a; 类的新成员&#xff1a;static成员和类的好朋友&#xff1a;友元 &#x1f3c6;个人主页&#xff1a;CILMY23-CSDN博客 &#x1f3c6;系列专栏&#xff1a;Python | C | C语言 | 数据结构与算法 | 贪心算法 | Li…