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

自动筛选器是 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.mzph.cn/news/837428.shtml

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

相关文章

5.14(Vue2)

1.单页应用程序是指所有功能都在一个html页面上 单页面应用程序,之所以开发效率高,性能好,应用体验好,最大的原因就是:页面按需更新。 2.Vue中的路由 路径和组件的映射关系 Vue中的路由插件:VueRouter&…

对于负载均衡算法的一些思考

碎碎念 最近在看一本关于架构的书,其中牵扯到分布式、自动伸缩、集群相关一定会提到负载均衡,随即写下这篇文章 负载均衡的基石 主要参考: https://www.cloudflare.com/learning/performance/what-is-load-balancing/ https://aws.amazon.c…

传感数据分析——加速度、速度与位移

传感数据分析——加速度、速度与位移 在许多科学和工程应用中,传感器数据的分析是一项至关重要的任务。特别是在运动、运输、结构监测等领域,传感器能够提供有关物体运动和变形的宝贵信息。本文将介绍如何利用Python进行传感器数据分析,重点…

TCP/UDP通信中的部分函数

UDP(User Datagram Protocol,用户数据报协议)和TCP(Transmission Control Protocol,传输控制协议)是互联网协议套件中最常用的两种传输层协议,它们负责在互联网中端到端地传输数据。尽管它们服务…

leetcode题目1

两数之和 简单 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。 你可以…

Laravel中使用MinIO进行文件操作及ZIP解压

Laravel中使用MinIO进行文件操作及ZIP解压指南 介绍 在本指南中,我们将详细介绍如何在laravel框架中操作minio,包含方法有:桶列表,创建桶,修改桶,上传文件,删除文件,生成直传链接&…

Linux系统编程:进程控制

1.进程创建 1.1 fork函数 fork()通过复制调用进程来创建一个新进程。新进程称为子进程,是调用进程的精确副本 进程,但以下几点除外: 子进程有自己的PID,此PID与任何现有进程组的ID不匹配子进程的父进程ID…

Uncaught InternalError: too much recursion

今天在敲代码的时候偶然间发现项目因为一次操作导致浏览器变得非常卡,而且控制台还报错了 Uncaught InternalError: too much recursior 页面截图如下 : 突如起来的报错和页面异常卡顿给我整不会了ovo,点开报错的地方,直接跳转到对…

HTML满屏漂浮爱心

目录 写在前面 满屏爱心 代码分析 系列推荐 写在最后 写在前面 小编给大家准备了满屏漂浮爱心代码&#xff0c;一起来看看吧~ 满屏爱心 文件heart.svg <svg xmlns"http://www.w3.org/2000/svg" width"473.8px" height"408.6px" view…

Ansible的安装与配置

Ansible的安装与配置 1. 安装ansible # ansible是epel源提供的&#xff0c;所以必须安装epel&#xff1a; [rootRocky9 ~]# yum -y install epel-release Last metadata expiration check: 0:01:53 ago on Tue 26 Dec 2023 10:05:34 PM CST. Dependencies resolved. Package …

精品录播|电磁场数值仿真技术及天线设计与应用

电磁场数值仿真技术及天线设计与应用

直播预约丨《袋鼠云大数据实操指南》No.2:实时开发,如何成为数据智能化的有效驱动力

近年来&#xff0c;新质生产力、数据要素及数据资产入表等新兴概念犹如一股强劲的浪潮&#xff0c;持续冲击并革新着企业数字化转型的观念视野&#xff0c;昭示着一个以数据为核心驱动力的新时代正稳步启幕。 面对这些引领经济转型的新兴概念&#xff0c;为了更好地服务于客户…

银河麒麟V10桌面版分区分析

前言&#xff1a;本文只讨论gpt分区uefi引导形式 &#xff0c;了解分区方案的目的是方便恢复&#xff0c;还原&#xff0c;扩容等&#xff0c;普通用户使用无需了解这些细节。 先回顾分析windows和ubuntu默认分区用做对比 1、windows11默认分区 win11分区&#xff0c;如上图&am…

【Linux线程(二)】线程互斥和同步

前言&#xff1a; 在上一篇博客中&#xff0c;我们讲解了什么是线程以及如何对线程进行控制&#xff0c;那么了解了这些&#xff0c;我们就可以在程序中创建多线程了&#xff0c;可是多线程往往会带有许多问题&#xff0c;比如竞态条件、死锁、数据竞争、内存泄漏等问题&#…

高扩展性便携式1553B总线测试仪,支持麒麟操作系统

手提式便携1553B总线测试仪&#xff0c;利用订制平台的PXIe扩展槽嵌入石竹科技自主研发的高性能T系列专用1553B测试板卡和高级协议分析和测试软件FP-1553B Pro、FP-5186集成的一款模块化、功能可订制的测试仪器。 基本配置可对1553B信号进行波形采集&#xff08;提供软件示波器…

Charles抓包工具使用指南:成为网络数据侦察高手

在日常的开发和测试工作中&#xff0c;能够洞察网络请求和响应的细节对于诊断问题、优化性能及保障数据安全至关重要。Charles作为一款流行的网络抓包和调试工具&#xff0c;凭借其强大的功能和直观的界面成为许多开发人员和测试工程师的必备神器。那么&#xff0c;如何高效地使…

Android RecyclerView注册每项的单击和长按事件监听

1.在Adapter中定义监听接口 public class DeviceListAdapter extends RecyclerView.Adapter<DeviceViewHolder> {public interface OnItemClickListener {public void onItemClick(View view, int position);public void onItemLongClick(View view, int position);}pri…

【批量处理文档】CleverPDF,WOED,EXCEL,PPT,PDF批量转换相关的工具网站NO.97

本文一共:429 个字,需要阅读:2 分钟,更新时间:2024年5 月14日,部分内容具有时效性,如有失效请留言,阅读量:1 CleverPDF&#xff0c;具有44个功能强大的免费在线PDF转换器和工具。 资源来源于网络&#xff0c;免费分享仅供学习和测试使用&#xff0c;请勿用于商业用途&#xff…

超级漂亮的 Ai 官网源码

超级漂亮的 AI 官网源码 效果图部分源码领取源码下期更新预报 效果图 部分源码 <script lang"js">function project3D(x, y, z, vars) {var p, dx - vars.camXy - vars.camY - 8z - vars.camZp Math.atan2(x, z)d Math.sqrt(x * x z * z)x Math.sin(p - v…

List/ConcurrentBag Contains的效率比Dictionary/ConcurrentDictionary ContainsKey 低几千倍

测试目标&#xff1a; 用两组 50000 个字符串做包含(Contains)判断&#xff0c;分析性能差异。 50000个字符串集合测试结果&#xff1a; Dictionary/ConcurrentDictionary 能在1-2毫秒完成50000个字符串集合的包含判断&#xff1b; List 需要3秒&#xff0c;ConcurrentBag需要…