C# 在Excel中插入和操作切片器-详解

目录

使用工具

C# 在Excel中插入切片器

插入切片器到透视表

插入切片器到表格

C# 在Excel中修改切片器

C# 删除Excel中的切片器


切片器(Slicer)是Excel中的一个强大工具,它提供了直观且交互式的方式来过滤数据。通过切片器,用户可以轻松选择数据范围并快速查看特定数据。切片器通常与透视表(Pivot Table)或表格(Table)结合使用,使数据分析更加高效。在这篇文章中,我们将探讨如何使用C# 实现在Excel中插入和操作切片器,主要内容包含以下几个方面:

  • C# 在Excel中插入切片器
    • 插入切片器到透视表
    • 插入切片器到表格
  • C# 在Excel中修改切片器
  • C# 删除Excel中的切片器

使用工具

要使用C# 在Excel中插入和操作切片器,需要用到合适的Excel文档处理库。本文所使用的是Spire.XLS for .NET库。该库主要用于在 .NET 应用程序中创建、读取、编辑、转换 和打印Excel 文档。

安装 Spire.XLS for .NET

你可以在 NuGet 包管理器中运行以下命令安装 Spire.XLS for .NET:

PM> Install-Package Spire.XLS

如果你已经安装了该库并希望升级到最新版本,可以使用以下命令:

PM> Update-Package Spire.XLS

C# 在Excel中插入切片器

在 Excel 中,切片器通常与数据透视表或表格相关联。下面我们将分别介绍如何将切片器插入到数据透视表和表格中。

插入切片器到透视表

在 Spire.XLS 中,可以使用 Worksheet.Slicers.Add(IPivotTable pivot, string destCellName, IPivotField baseField) 方法为数据透视表添加切片器,其中:

  • IPivotTable pivot 参数表示要插入切片器的数据透视表对象。
  • string destCellName 参数表示插入切片器的目标单元格位置。
  • IPivotField baseField 参数表示数据透视表的特定字段,切片器将基于该字段对数据透视表执行数据筛选。

在添加切片器到透视表时,你可以选择添加到现有透视表。如果没有现有透视表,也可以新建透视表然后为其添加切片器。

新建透视表并为其添加切片器

以下是新建数据透视表并为其添加切片器的实现代码:

using Spire.Xls;
using Spire.Xls.Core;
using Spire.Xls.Core.Spreadsheet.PivotTables;namespace InsertSlicers
{internal class Program{static void Main(string[] args){// 创建一个新的工作簿Workbook workbook = new Workbook();// 添加一个工作表Worksheet sheet = workbook.Worksheets[0];// 添加示例数据sheet.Range["A1"].Value = "产品";sheet.Range["B1"].Value = "一月";sheet.Range["C1"].Value = "二月";sheet.Range["D1"].Value = "三月";sheet.Range["A2"].Value = "产品A";sheet.Range["B2"].NumberValue = 500;sheet.Range["C2"].NumberValue = 300;sheet.Range["D2"].NumberValue = 400;sheet.Range["A3"].Value = "产品B";sheet.Range["B3"].NumberValue = 600;sheet.Range["C3"].NumberValue = 700;sheet.Range["D3"].NumberValue = 800;// 添加数据透视表CellRange dataRange = sheet.Range["A1:D3"];PivotCache cache = workbook.PivotCaches.Add(dataRange);PivotTable pivotTable = sheet.PivotTables.Add("PivotTable1", sheet.Range["A5"], cache);// 将字段拖动到行区域PivotField pivotField = pivotTable.PivotFields["产品"] as PivotField;pivotField.Axis = AxisTypes.Row;// 将字段拖动到数据区域pivotTable.DataFields.Add(pivotTable.PivotFields["一月"], "一月总计", SubtotalTypes.Sum);pivotTable.DataFields.Add(pivotTable.PivotFields["二月"], "二月总计", SubtotalTypes.Sum);pivotTable.DataFields.Add(pivotTable.PivotFields["三月"], "三月总计", SubtotalTypes.Sum);// 设置数据透视表的样式pivotTable.BuiltInStyle = PivotBuiltInStyles.PivotStyleLight16;// 刷新数据透视表pivotTable.CalculateData();// 添加切片器sheet.Slicers.Add(pivotTable, "F5", pivotField);// 保存文档workbook.SaveToFile("插入切片器到透视表.xlsx", ExcelVersion.Version2013);            workbook.Dispose();}}
}

C# 在Excel中插入数据透视表并添加切片器

为现有数据透视表添加切片器

以下是为现有数据透视表添加切片器的实现代码:

using Spire.Xls;
using Spire.Xls.Core.Spreadsheet.PivotTables;namespace InsertSlicers
{internal class Program{static void Main(string[] args){// 加载Excel文件Workbook workbook = new Workbook();workbook.LoadFromFile("数据透视表.xlsx");// 获取第一个工作表Worksheet sheet = workbook.Worksheets[0];// 获取第一个数据透视表XlsPivotTable pivotTable = sheet.PivotTables[0] as XlsPivotTable;// 获取数据透视表的特定字段PivotField pivotField = pivotTable.PivotFields["产品"] as PivotField;            // 添加切片器sheet.Slicers.Add(pivotTable, "F5", pivotField);// 保存文档workbook.SaveToFile("插入切片器到现有透视表.xlsx", ExcelVersion.Version2013);workbook.Dispose();}}
}

插入切片器到表格

如果要为表格添加切片器,可以使用 Worksheet.Slicers.Add(IListObject table, string destCellName, int index) 方法,其中:

  • IListObject table 参数表示要插入切片器的表格对象。
  • string destCellName 参数表示插入切片器的目标单元格位置。
  • int index 参数表示列的索引,切片器将基于该列对表格执行数据筛选。

同样地,你可以为现有表格添加切片器,也可以新建表格并为其添加切片器。

新建表格并为其添加切片器

以下是新建表格并为其添加切片器的实现代码:

using Spire.Xls;
using Spire.Xls.Core;namespace InsertSlicers
{internal class Program{static void Main(string[] args){// 创建一个新的工作簿Workbook workbook = new Workbook();// 添加一个工作表Worksheet sheet = workbook.Worksheets[0];// 添加示例数据sheet.Range["A1"].Value = "产品";sheet.Range["B1"].Value = "类别";sheet.Range["C1"].Value = "销量";sheet.Range["A2"].Value = "产品A";sheet.Range["B2"].Value = "电子产品";sheet.Range["C2"].NumberValue = 500;sheet.Range["A3"].Value = "产品B";sheet.Range["B3"].Value = "家电";sheet.Range["C3"].NumberValue = 600;sheet.Range["A4"].Value = "产品C";sheet.Range["B4"].Value = "电子产品";sheet.Range["C4"].NumberValue = 700;sheet.Range["A5"].Value = "产品D";sheet.Range["B5"].Value = "家电";sheet.Range["C5"].NumberValue = 800;// 将数据转换为表格CellRange tableRange = sheet.Range["A1:C5"];IListObject table = sheet.ListObjects.Create("Table1", tableRange);table.BuiltInTableStyle = TableBuiltInStyles.TableStyleMedium2;sheet.Slicers.Add(table, "E1", 0);// 保存文档workbook.SaveToFile("新建表格并插入切片器.xlsx", ExcelVersion.Version2013);workbook.Dispose();}        }
}

C# 在Excel中添加表格并添加切片器

为现有表格添加切片器

以下是为现有表格添加切片器的实现代码:

using Spire.Xls;
using Spire.Xls.Core;namespace InsertSlicers
{internal class Program{static void Main(string[] args){// 加载Excel文件Workbook workbook = new Workbook();workbook.LoadFromFile("表格.xlsx");// 获取第一个工作表Worksheet sheet = workbook.Worksheets[0];// 获取第一个表格IListObject table = sheet.ListObjects[0];// 为表格添加切片器sheet.Slicers.Add(table, "E1", 0);// 保存文档workbook.SaveToFile("为现有表格插入切片器.xlsx", ExcelVersion.Version2013);workbook.Dispose();}        }
}

C# 在Excel中修改切片器

在某些情况下,你可能需要调整切片器的外观、名称或标题等属性。可以通过 Worksheet.Slicers[index] 获取指定切片器,并使用 XlsSlicer 类的 StyleType 属性更改样式,Name 属性修改名称,Caption 属性设置标题。此外,还可以调整其他设置,例如取消特定条目的选中状态等。

以下是具体实现代码:

using Spire.Xls;
using Spire.Xls.Core;namespace ModifySlicers
{internal class Program{static void Main(string[] args){// 创建 Workbook 类的实例Workbook workbook = new Workbook();// 加载 Excel 文件workbook.LoadFromFile("切片器.xlsx");// 获取第一个工作表Worksheet worksheet = workbook.Worksheets[0];// 获取工作表中的第一个切片器XlsSlicer slicer = worksheet.Slicers[0];// 更改切片器的样式、名称和标题slicer.StyleType = SlicerStyleType.SlicerStyleDark6;slicer.Name = "新名称";slicer.Caption = "新标题";// 在切片器中取消选择第一个项目XlsSlicerCacheItemCollection slicerCacheItems = slicer.SlicerCache.SlicerCacheItems;XlsSlicerCacheItem xlsSlicerCacheItem = slicerCacheItems[0];xlsSlicerCacheItem.Selected = false;// 修改切片器的列数slicer.NumberOfColumns = 2;// 修改切片器的宽度和高度slicer.Width = 200;slicer.Height = 200;// 保存工作簿为 Excel 文件workbook.SaveToFile("修改切片器.xlsx", ExcelVersion.Version2013);workbook.Dispose();}        }
}

C# 修改Excel切片器

C# 删除Excel中的切片器

如果要删除 Excel 工作表中的某个切片器,可以使用 Worksheet.Slicers.RemoveAt(int index) 方法。此外,你还可以使用Worksheet.Slicers.Clear()方法,删除工作表中所有的切片器。

以下是具体实现代码:

using Spire.Xls;
using Spire.Xls.Core;namespace RemoveSlicers
{internal class Program{static void Main(string[] args){// 打开Excel文件Workbook workbook = new Workbook();workbook.LoadFromFile("切片器.xlsx");// 获取第一个工作表Worksheet worksheet = workbook.Worksheets[0];// 删除第一个切片器worksheet.Slicers.RemoveAt(0);// 或者删除所有切片器// worksheet.Slicers.Clear();// 保存工作簿为 Excel 文件workbook.SaveToFile("删除切片器.xlsx", ExcelVersion.Version2013);workbook.Dispose();}}
}

以上就是使用 C# 在 Excel 中插入、修改和删除切片器的全部内容。感谢阅读!

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

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

相关文章

【Python修仙编程】(二) Python3灵源初探(7)

字典的修炼——修仙者的法宝库 师傅玄天真人在他面前摊开一本泛黄的法典,上面写着:“字典是修仙者存储法宝的仓库,能让你快速找到需要的宝贝。” “师傅,字典是啥玩意儿?”林羽挠挠头,一脸懵逼。 “字典…

SyntaxError: Illegal return statement

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》、《前端求职突破计划》 🍚 蓝桥云课签约作者、…

GB28181视频监控流媒体平台LiveGBS如何自定义收流端口区间以便减少收流端口数或解决端口冲突问题

LiveGBS GB28181流媒体服务在接收视频的时候默认是使用30000-30249, webrtc流播放端口区间默认是UDP的30250-30500区间。有些网络环境不方便开放这么大的端口区间,下面介绍下如何修改配置这个区间。 从页面上修改这个区间,端口区间尽量设置大…

饮食 “巧调理”,缓解手抖有妙方

手抖,这一常见症状背后可能潜藏多种原因,无论是生理性紧张所致,还是病理性疾病引发,合理饮食都对缓解症状有积极意义。健康饮食能够为身体提供必要营养,助力神经系统稳定,从而在一定程度上改善手抖状况。 在…

利用 requestrepo 工具验证 XML外部实体注入漏洞

1. 前言 在数字化浪潮席卷的当下,网络安全的重要性愈发凸显。应用程序在便捷生活与工作的同时,也可能暗藏安全风险。XXE(XML外部实体)漏洞作为其中的典型代表,攻击者一旦利用它,便能窃取敏感信息、掌控服务…

考前冲刺,消防设施操作员考试最后一击

考前冲刺,消防设施操作员考试最后一击 考前冲刺阶段至关重要。首先要回归教材,快速浏览重点知识点,强化记忆。同时,对之前做过的错题进行集中复习,分析错误原因,避免在考试中再次犯错。进行全真模拟考试&a…

【javaEE】多线程(基础)

1.❤️❤️前言~🥳🎉🎉🎉 Hello, Hello~ 亲爱的朋友们👋👋,这里是E绵绵呀✍️✍️。 如果你喜欢这篇文章,请别吝啬你的点赞❤️❤️和收藏📖📖。如果你对我的…

【江科大STM32】TIM输入捕获模式PWMI模式测频率

一、输入捕获测频率 接线图: 测信号的输入引脚为PA6,信号从PA6进来,待测的PWM信号也是STM32自己生成的,输出引脚是PA0,所以接线这里直接用一根线将PA0引到PA6就可以了。 如果有信号发生器的话,也可以设置成…

第10章 metasploit(网络安全防御实战--蓝军武器库)

网络安全防御实战--蓝军武器库是2020年出版的,已经过去3年时间了,最近利用闲暇时间,抓紧吸收,总的来说,第10章开始学习利用metasploit渗透测试工具去打metasploit2虚拟机,本文我演示了metasploit端口扫描和…

AI绘画软件Stable Diffusion详解教程(8):图生图进阶篇(手绘修正)

本篇介绍一下图生图的涂鸦绘制模式。 效果和上一篇改变风格雷同,但是可以通过涂鸦的方式,在重绘时对涂鸦的部分进行替换,替换部分的图像参照正向提示词来生成。 一、进入图生图标签页 按箭头指示处,打开涂鸦绘制工作区。 二、涂…

mapbox高阶,结合threejs(threebox)添加三维球体

👨‍⚕️ 主页: gis分享者 👨‍⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍⚕️ 收录于专栏:mapbox 从入门到精通 文章目录 一、🍀前言1.1 ☘️mapboxgl.Map 地图对象1.2 ☘️mapboxgl.Map style属性1.3 ☘️threebox Sphere静态对象二、🍀使用t…

从零开始用HTML、CSS和JavaScript制作贪吃蛇网页小游戏

〇、前言 贪吃蛇是一款经典的休闲游戏,在诺基亚手机时代风靡全球。 作为编程入门者,实现一个贪吃蛇游戏是学习Web前端技术的绝佳练习。 名人说:博观而约取,厚积而薄发。——苏轼《稼说送张琥》 创作者:Code_流苏(CSDN…

计算机网络-服务器模型

一.服务器模型 1.支持多客户端访问 //单循环服务器 socket bind listen while(1) { accept while(1) { recv/send } } close 注:该模式remvform为阻塞态,服务器将等待接收数据 2..支持多客户端同时访问 (并发能力) socket…

aardio - 虚表 —— 两个虚表之间互相拖动交换数据

插入到虚表末尾的方法: import win.ui; import godking.vlistEx; /*DSG{{*/ mainForm win.form(text"vlistEx - table adapter";right849;bottom578;border"thin") mainForm.add( radiobutton{cls"radiobutton";text"移动&qu…

正十七边形尺规作图证明——从高斯的发现到几何实现

正十七边形尺规作图证明——从高斯的发现到几何实现 1. 引言:一个历史性的数学突破 在欧几里得几何中,尺规作图(仅使用直尺和圆规)是最为基础的几何构造方法。古希腊数学家已知如何构造正三角形、正方形和正五边形,但…

Facebook 的历史与发展:从校园网站到全球社交平台

引言 Facebook,这个全球最大的社交网络平台之一,其发展历程充满了创新和变革。从最初的校园网站到如今的全球社交平台,Facebook 不仅改变了人们的沟通方式,也重塑了信息传播和社交互动的模式。 起源:校园内的点子 Fa…

windows无界面后台定时任务 (重启自启动,ODBS为例)

一、前言 mdb(Microsoft Database)是Microsoft Access中使用的一种数据存储格式,可以通过ODBC驱动程序进行访问和操作,在Python中也可以安装相应模块打开。 这是我在项目中更新bs数据的一个实践记录,结合windows定时一起记录一下,方便以后照搬~ 二、安装 Python安装库…

Android Studio 配置国内镜像源

Android Studio版本号:2022.1.1 Patch 2 1、配置gradle国内镜像,用腾讯云 镜像源地址:https\://mirrors.cloud.tencent.com/gradle 2、配置Android SDK国内镜像 地址:Index of /AndroidSDK/

【DeepSeek】Ubuntu快速部署DeepSeek(Ollama方式)

文章目录 人人都该学习的DeepSeekDeepSeek不同版本功能差异DeepSeek与硬件直接的关系DeepSeek系统兼容性部署方式选择部署步骤(Ollama方式)1.选定适合的deepseek版本2.环境准备3.安装Ollama4.部署deepseek5.测试使用 人人都该学习的DeepSeek DeepSeek 作…

安装并运行hadoop程序

1.在虚拟机上安装javaJDK (1)把javaJDK文件上传到服务器 在opt文件夹下新建一个software文件夹,将jdk拖入software (2)解压文件 在opt文件夹下新建一个module文件夹,确认上传成功之后,在softwa…