服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - C# - C#如何操作Excel数据透视表

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

2022-02-22 14:15E-iceblue C#

这篇文章主要为大家详细介绍了C#如何操作Excel数据透视表, 创建透视表、设置行折叠、展开等操作,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

一、概述

数据透视表(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.创建透视表

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
//创建一个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. 设置行折叠、展开

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
//创建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数据透视表

?
1
2
3
4
5
6
7
8
9
10
11
12
13
//创建一个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. 删除透视表

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

  •  根据透视表名称删除
  •  根据透视表索引删除
?
1
2
3
4
5
6
7
8
9
10
11
12
//创建一个工作簿,并加载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#浅谈C# winForm 窗体闪烁的问题

    浅谈C# winForm 窗体闪烁的问题

    下面小编就为大家带来一篇浅谈C# winForm 窗体闪烁的问题。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    C#教程网7962021-12-21
  • C#C# 后台处理图片的几种方法

    C# 后台处理图片的几种方法

    本篇文章主要介绍了C# 后台处理图片的几种方法,非常具有实用价值,需要的朋友可以参考下。...

    IT小伙儿10162021-12-08
  • C#Unity3D UGUI实现缩放循环拖动卡牌展示效果

    Unity3D UGUI实现缩放循环拖动卡牌展示效果

    这篇文章主要为大家详细介绍了Unity3D UGUI实现缩放循环拖动展示卡牌效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参...

    诗远3662022-03-11
  • C#聊一聊C#接口问题 新手速来围观

    聊一聊C#接口问题 新手速来围观

    聊一聊C#接口问题,新手速来围观,一个通俗易懂的例子帮助大家更好的理解C#接口问题,感兴趣的小伙伴们可以参考一下...

    zenkey7072021-12-03
  • C#C#直线的最小二乘法线性回归运算实例

    C#直线的最小二乘法线性回归运算实例

    这篇文章主要介绍了C#直线的最小二乘法线性回归运算方法,实例分析了给定一组点,用最小二乘法进行线性回归运算的实现技巧,具有一定参考借鉴价值,需要...

    北风其凉8912021-10-18
  • C#C#实现的文件操作封装类完整实例【删除,移动,复制,重命名】

    C#实现的文件操作封装类完整实例【删除,移动,复制,重命名】

    这篇文章主要介绍了C#实现的文件操作封装类,结合完整实例形式分析了C#封装文件的删除,移动,复制,重命名等操作相关实现技巧,需要的朋友可以参考下...

    Rising_Sun3892021-12-28
  • C#c#学习之30分钟学会XAML

    c#学习之30分钟学会XAML

    一个界面程序的核心,无疑就是界面和后台代码,而xaml就是微软为构建应用程序界面而创建的一种描述性语言,也就是说,这东西是搞界面的...

    C#教程网8812021-12-10
  • C#C#基础之泛型

    C#基础之泛型

    泛型是 2.0 版 C# 语言和公共语言运行库 (CLR) 中的一个新功能。接下来通过本文给大家介绍c#基础之泛型,感兴趣的朋友一起学习吧...

    方小白7732021-12-03