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内置的数据透视表样式)

C#如何操作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");

测试结果:

C#如何操作Excel数据透视表

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");

测试结果:

C#如何操作Excel数据透视表

3. 设置字段排序

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

C#如何操作Excel数据透视表


//创建一个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");

测试结果:

C#如何操作Excel数据透视表

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#如何操作Excel数据透视表

以上内容为本次关于“Excel数据透视表的示例操作”的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

来源:https://www.cnblogs.com/Yesi/archive/2018/04/04/8715318.html

标签:C#,Excel,数据透视表
0
投稿

猜你喜欢

  • Java实现快速排序过程分析

    2023-07-27 18:40:57
  • Java线程创建的四种方式总结

    2023-10-29 19:36:03
  • 详解Java中多进程编程的实现

    2021-12-22 01:46:06
  • SpringMVC RESTFul实体类创建及环境搭建

    2022-12-25 18:23:06
  • Java基于Tcp的基础聊天功能实例

    2023-11-25 05:26:56
  • Java的内部类总结

    2022-08-13 01:33:41
  • 新的Java访问mysql数据库工具类的操作代码

    2023-04-05 16:54:58
  • Springboot JPA 枚举Enum类型存入到数据库的操作

    2023-11-25 16:11:40
  • C++实现LeetCode(131.拆分回文串)

    2023-07-24 09:58:42
  • java IO流 之 输出流 OutputString()的使用

    2023-08-11 23:16:30
  • IDEA安装阿里巴巴编码规范插件的两种方式详解(在线安装和离线安装)

    2022-07-23 19:18:54
  • idea创建SpringBoot项目时Type选maven project和maven pom有何区别

    2023-07-04 07:20:27
  • SpringMVC结构简介及常用注解汇总

    2023-10-25 09:16:59
  • Spring maven filtering使用方法详解

    2021-07-02 22:14:46
  • hadoop实现grep示例分享

    2023-12-24 05:31:04
  • Java内存模型与JVM运行时数据区的区别详解

    2023-11-24 13:29:08
  • C语言高效编程的几招小技巧

    2023-11-02 14:12:50
  • Java NIO中四大核心组件的使用详解

    2023-10-19 17:05:13
  • Java可变个数形参的方法实例代码

    2023-01-15 18:35:56
  • java实现双色球抽奖算法

    2023-11-28 23:51:51
  • asp之家 软件编程 m.aspxhome.com