C#如何操作Excel数据透视表
作者:E-iceblue 时间:2021-09-01 20:18:42
一、概述
数据透视表(Pivot Table)是一种交互式的表,可以进行某些计算,如求和与计数等,可动态地改变透视表版面布置,也可以重新安排行号、列标和页字段。当改变版面布置时,数据透视表也会按照新的布置来进行更新,可以说是一个功能强大的数据分析工具。因此,本篇文章将介绍在C# 中关于Excel数据透视表的操作示例,示例内容主要包含以下要点:
1. 创建透视表
(1)创建数据缓存
(2)创建数据透视表
(3)添加行字段和列字段
(4)添加值字段
(5)设置样式
2. 设置行折叠、展开
3. 设置字段升序、降序
4. 删除透视表
二、准备工具
Spire.XLS for .NET (可支持80余种Excel内置的数据透视表样式)
PS:安装后,注意在项目中引用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);
测试结果:
以上内容为本次关于“Excel数据透视表的示例操作”的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
来源:https://www.cnblogs.com/Yesi/archive/2018/04/04/8715318.html
标签:C#,Excel,数据透视表
0
投稿
猜你喜欢
Android 6.0 蓝牙搜索不到设备原因,MIUI权限申请机制方法
2021-07-31 01:20:06
C#词法分析器之构造NFA详解
2022-04-10 02:11:43
总结的5个C#字符串操作方法分享
2022-08-10 04:02:01
Java多线程synchronized同步方法详解
2023-06-30 00:39:42
Java之Algorithm_analysis案例详解
2022-03-07 01:34:50
java分页工具类的使用方法
2023-08-17 02:00:14
Unity实现截图功能
2022-02-18 11:36:18
Winform跨线程操作的简单方法
2023-04-28 09:38:46
Java优秀类库Hutool使用示例
2021-12-09 18:12:06
Spring Boot创建非可执行jar包的实例教程
2022-10-05 12:47:35
C#实现将网址生成二维码图片方法介绍
2022-08-14 02:31:49
springmvc+shiro自定义过滤器的实现代码
2021-08-11 21:23:11
java多线程实现交通灯管理系统
2022-01-11 07:36:54
SpringBoot整合ES-Elasticsearch的实例
2022-12-29 03:30:40
Grow heap (frag case) 堆内存过大的深入解析
2023-04-28 15:30:27
Android中FontMetrics的几个属性全面讲解
2023-11-14 14:57:20
Java Scanner类用法及nextLine()产生的换行符问题实例分析
2022-12-22 21:44:04
.NET创建、删除、复制文件夹及其子文件的实例方法
2022-12-29 06:32:45
C++内存池的简单实现
2022-05-27 05:20:50
Android仿美团淘宝实现多级下拉列表菜单功能
2022-07-24 18:42:18