C# Spire操作Excel数据透视表

2023-12-04 01:15

本文主要是介绍C# Spire操作Excel数据透视表,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、概述

数据透视表(Pivot Table)是一种交互式的表,可以进行某些计算,如求和与计数等,可动态地改变透视表版面布置,也可以重新安排行号、列标和页字段。当改变版面布置时,数据透视表也会按照新的布置来进行更新,可以说是一个功能强大的数据分析工具。因此,本篇文章将介绍在C# 中关于Excel数据透视表的操作示例,示例内容主要包含以下要点:

  1. 创建透视表
  2. 创建数据缓存
  3. 创建数据透视表
  4. 添加行字段和列字段
  5. 添加值字段
  6. 设置样式
  7. 设置行折叠、展开
  8. 设置字段升序、降序
  9. 删除透视表

二、使用工具

  • Spire.XLS for .NET pack(可支持80余种Excel内置的数据透视表样式)

PS:安装后,注意在VS程序中引用Spire.XLS.dll,dll文件在安装路径下的Bin文件夹中获取。

三、示例操作

1.创建透视表

            //创建一个Workbook类实例,并加载Excel文档Workbook workbook = new Workbook();workbook.LoadFromFile("test.xlsx");//获取第一个工作表Worksheet sheet = workbook.Worksheets[0];//为需要汇总和分析的数据创建缓存CellRange dataRange = sheet.Range["A1:D10"];PivotCache cache = workbook.PivotCaches.Add(dataRange);//使用缓存创建数据透视表,并指定透视表的名称以及在工作表中的位置PivotTable pivotTable = sheet.PivotTables.Add("PivotTable", sheet.Range["A12"], cache);//添加行字段var r1 = pivotTable.PivotFields["月份"];r1.Axis = AxisTypes.Row;var r2 = pivotTable.PivotFields["厂商"];r2.Axis = AxisTypes.Row;//设置行字段的标题pivotTable.Options.RowHeaderCaption = "月份";//添加列字段var col1 = pivotTable.PivotFields["产品"];col1.Axis = AxisTypes.Column;          //设置列字段的标题pivotTable.Options.ColumnHeaderCaption = "产品";//添加值字段pivotTable.DataFields.Add(pivotTable.PivotFields["总产量"], "求和项:总产量", SubtotalTypes.Sum);//设置透视表的样式(Spire.XLS共支持80余种Excel内置的数据透视表样式)pivotTable.BuiltInStyle = PivotBuiltInStyles.PivotStyleDark13;//保存并打开文档workbook.SaveToFile("数据透视表.xlsx", ExcelVersion.Version2013);System.Diagnostics.Process.Start("数据透视表.xlsx");

测试结果:

2. 设置行折叠、展开

            //创建Workbook类对象,加载Excel文档  Workbook workbook = new Workbook();workbook.LoadFromFile("数据透视表.xlsx");//获取数据透视表  XlsPivotTable pivotTable = workbook.Worksheets[0].PivotTables[0] as XlsPivotTable;//计算数据  pivotTable.CalculateData();//展开”月份”字段下“2”的详细信息  (pivotTable.PivotFields["月份"] as Spire.Xls.Core.Spreadsheet.PivotTables.XlsPivotField).HideItemDetail("2", false);//折叠”月份”字段下“3”的详细信息(pivotTable.PivotFields["月份"] as Spire.Xls.Core.Spreadsheet.PivotTables.XlsPivotField).HideItemDetail("3", true);//保存并打开文档  workbook.SaveToFile("折叠、展开行.xlsx", ExcelVersion.Version2013);System.Diagnostics.Process.Start("折叠、展开行.xlsx");

测试结果:

3. 设置字段排序

这里支持三种不同类型的排序,可根据需要选择相应的排序类型。

            //创建一个Workbook类对象,并加载Excel文档  Workbook workbook = new Workbook();workbook.LoadFromFile("数据透视表.xlsx");//获取数据透视表  Spire.Xls.Core.Spreadsheet.PivotTables.XlsPivotTable pivotTable = workbook.Worksheets[0].PivotTables[0] as Spire.Xls.Core.Spreadsheet.PivotTables.XlsPivotTable;//对指定字段进行升序排序  pivotTable.PivotFields[2].SortType = PivotFieldSortType.Ascending;//保存并打开文档  workbook.SaveToFile("升序.xlsx", ExcelVersion.Version2013);System.Diagnostics.Process.Start("升序.xlsx");

测试结果:

4. 删除透视表

删除透视表可通过以下两种方法:

  • 根据透视表名称删除
  • 根据透视表索引删除
            //创建一个工作簿,并加载Excel文档Workbook workbook = new Workbook();workbook.LoadFromFile("数据透视表.xlsx");//删除第一张工作表上名称为“PivotTable”的数据透视表  workbook.Worksheets[0].PivotTables.Remove("PivotTable");//删除第一张工作表上索引为0即第一个数据透视表  //workbook.Worksheets[0].PivotTables.RemoveAt(0);  //保存文档  workbook.SaveToFile("删除数据透视表.xlsx", ExcelVersion.Version2013);

测试结果:

(本文完)

这篇关于C# Spire操作Excel数据透视表的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/451565

相关文章

一文解析C#中的StringSplitOptions枚举

《一文解析C#中的StringSplitOptions枚举》StringSplitOptions是C#中的一个枚举类型,用于控制string.Split()方法分割字符串时的行为,核心作用是处理分割后... 目录C#的StringSplitOptions枚举1.StringSplitOptions枚举的常用

Linux下利用select实现串口数据读取过程

《Linux下利用select实现串口数据读取过程》文章介绍Linux中使用select、poll或epoll实现串口数据读取,通过I/O多路复用机制在数据到达时触发读取,避免持续轮询,示例代码展示设... 目录示例代码(使用select实现)代码解释总结在 linux 系统里,我们可以借助 select、

使用Java填充Word模板的操作指南

《使用Java填充Word模板的操作指南》本文介绍了Java填充Word模板的实现方法,包括文本、列表和复选框的填充,首先通过Word域功能设置模板变量,然后使用poi-tl、aspose-words... 目录前言一、设置word模板普通字段列表字段复选框二、代码1. 引入POM2. 模板放入项目3.代码

利用Python操作Word文档页码的实际应用

《利用Python操作Word文档页码的实际应用》在撰写长篇文档时,经常需要将文档分成多个节,每个节都需要单独的页码,下面:本文主要介绍利用Python操作Word文档页码的相关资料,文中通过代码... 目录需求:文档详情:要求:该程序的功能是:总结需求:一次性处理24个文档的页码。文档详情:1、每个

Python内存管理机制之垃圾回收与引用计数操作全过程

《Python内存管理机制之垃圾回收与引用计数操作全过程》SQLAlchemy是Python中最流行的ORM(对象关系映射)框架之一,它提供了高效且灵活的数据库操作方式,本文将介绍如何使用SQLAlc... 目录安装核心概念连接数据库定义数据模型创建数据库表基本CRUD操作创建数据读取数据更新数据删除数据查

Go语言中json操作的实现

《Go语言中json操作的实现》本文主要介绍了Go语言中的json操作的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录 一、jsOChina编程N 与 Go 类型对应关系️ 二、基本操作:编码与解码 三、结构体标签(Struc

前端导出Excel文件出现乱码或文件损坏问题的解决办法

《前端导出Excel文件出现乱码或文件损坏问题的解决办法》在现代网页应用程序中,前端有时需要与后端进行数据交互,包括下载文件,:本文主要介绍前端导出Excel文件出现乱码或文件损坏问题的解决办法,... 目录1. 检查后端返回的数据格式2. 前端正确处理二进制数据方案 1:直接下载(推荐)方案 2:手动构造

C#自动化实现检测并删除PDF文件中的空白页面

《C#自动化实现检测并删除PDF文件中的空白页面》PDF文档在日常工作和生活中扮演着重要的角色,本文将深入探讨如何使用C#编程语言,结合强大的PDF处理库,自动化地检测并删除PDF文件中的空白页面,感... 目录理解PDF空白页的定义与挑战引入Spire.PDF for .NET库核心实现:检测并删除空白页

C#利用Free Spire.XLS for .NET复制Excel工作表

《C#利用FreeSpire.XLSfor.NET复制Excel工作表》在日常的.NET开发中,我们经常需要操作Excel文件,本文将详细介绍C#如何使用FreeSpire.XLSfor.NET... 目录1. 环境准备2. 核心功能3. android示例代码3.1 在同一工作簿内复制工作表3.2 在不同

C#中通过Response.Headers设置自定义参数的代码示例

《C#中通过Response.Headers设置自定义参数的代码示例》:本文主要介绍C#中通过Response.Headers设置自定义响应头的方法,涵盖基础添加、安全校验、生产实践及调试技巧,强... 目录一、基础设置方法1. 直接添加自定义头2. 批量设置模式二、高级配置技巧1. 安全校验机制2. 类型