C# 操作Excel数据透视表
一、概述
数据透视表(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.创建透视表
C#
- //创建一个Workbook类实例,并加载Excel文档
- Workbook workbook = new Workbook();
- workbook.LoadFromFile("test.xlsx");
- //获取第一个工作表
- Worksheet sheet = workbook.Worksheets[];
- //为需要汇总和分析的数据创建缓存
- 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. 设置行折叠、展开
C#
- //创建Workbook类对象,加载Excel文档
- Workbook workbook = new Workbook();
- workbook.LoadFromFile("数据透视表.xlsx");
- //获取数据透视表
- XlsPivotTable pivotTable = workbook.Worksheets[].PivotTables[] as XlsPivotTable;
- //计算数据
- pivotTable.CalculateData();
- //展开”月份”字段下“2”的详细信息
- (pivotTable.PivotFields["月份"] as Spire.Xls.Core.Spreadsheet.PivotTables.XlsPivotField).HideItemDetail("", false);
- //折叠”月份”字段下“3”的详细信息
- (pivotTable.PivotFields["月份"] as Spire.Xls.Core.Spreadsheet.PivotTables.XlsPivotField).HideItemDetail("", true);
- //保存并打开文档
- workbook.SaveToFile("折叠、展开行.xlsx", ExcelVersion.Version2013);
- System.Diagnostics.Process.Start("折叠、展开行.xlsx");
测试结果:
3. 设置字段排序
这里支持三种不同类型的排序,可根据需要选择相应的排序类型。
C#
- //创建一个Workbook类对象,并加载Excel文档
- Workbook workbook = new Workbook();
- workbook.LoadFromFile("数据透视表.xlsx");
- //获取数据透视表
- Spire.Xls.Core.Spreadsheet.PivotTables.XlsPivotTable pivotTable = workbook.Worksheets[].PivotTables[] as Spire.Xls.Core.Spreadsheet.PivotTables.XlsPivotTable;
- //对指定字段进行升序排序
- pivotTable.PivotFields[].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[].PivotTables.Remove("PivotTable");
- //删除第一张工作表上索引为0即第一个数据透视表
- //workbook.Worksheets[0].PivotTables.RemoveAt(0);
- //保存文档
- workbook.SaveToFile("删除数据透视表.xlsx", ExcelVersion.Version2013);
测试结果:
以上内容为本次关于“Excel数据透视表的示例操作”的全部内容,欢迎转载(转载请注明出处)
感谢阅读!
C# 操作Excel数据透视表的更多相关文章
- VSTO学习笔记(十四)Excel数据透视表与PowerPivot
原文:VSTO学习笔记(十四)Excel数据透视表与PowerPivot 近期公司内部在做一种通用查询报表,方便人力资源分析.统计数据.由于之前公司系统中有一个类似的查询使用Excel数据透视表完成的 ...
- Java 创建 Excel 数据透视表
Excel 数据透视表具有强大的数据处理功能,能够使表格中的数据更加直观化.使用Excel 数据透视表,能方便用户快速的排序. 筛选各种数据,同时也能满足用户对不同数据汇总的需求.本文将介绍如何在Ja ...
- 使用excel 数据透视表画图
① 打开Excel,选中需要制表的数据,点击“插入”->“数据透视表” ② 出现下列对话框,点击“确定” ③ 再新的“sheet”表内对“数 ...
- Excel数据透视表的日常应用技巧
对工作表中数据进行统计是经常需要的.一般情况我们都是使用菜单命令或函数来进行数据的统计的.可是如果要统计的工作表中记录很多,而且需要统计的项目也很多时,使用这种方法就显得力不从心了.请问还有什么更好的 ...
- 妙用Excel数据透视表和透视图向导,将二维数据转换为一维数据
项目中,每年都会有各种经销商的各种产品目标数据导入,经销商和产品过多,手工操作过于单调和复杂.那有没有一种方式可以将复杂的二维数据转换为一维数据呢? 有,强大的Excel就支持此功能. 常用Excel ...
- delphi 控制 EXCEL 数据透视表
虽说报表多又难做,做报表相当容易. 做报表也可以偷懒的,超级实用又省事.只需要做一个报表,这个报表里面包括几乎所有的数据字段,然后将查询到的数据导出到 excel中,利用excel自带的“数据透视”功 ...
- Excel数据透视表
Excel中每列是一个字段,每行是一条记录. 值字段设置,双击更改统计方法. 双击透视表中的数据可以看具体是哪些记录贡献的这些数据. 显示报表筛选页,生成多个工作簿.
- Excel学习 -- 数据透视表功能
Excel -- 数据透视表基础 数据透视表(Pivot Table)是一种交互式的表,可以进行某些计算,如求和与计数等.所进行的计算与数据跟数据透视表中的排列有关. 之所以称为数据透视表,是因 ...
- Excel应用程序如何创建数据透视表
原文作者:andreww 原文链接: http://blogs.msdn.com/andreww/archive/2008/07/25/creating-a-pivottable-programmat ...
随机推荐
- T-SQL 中的CROSS JOIN用法(半翻译)
突然发现个很吊的链接,我们来看看学习数据库要做些什么,胆小慎点:DBA工作内容!!!! 今天来翻译一篇关于T-SQL的文章,本文可供微软认证70-461:QueryingMicrosoft SQL S ...
- 1026. Table Tennis (30)
题目如下: A table tennis club has N tables available to the public. The tables are numbered from 1 to N. ...
- 【OpenGL】理解一些基本问题
写在前面 啦啦啦,搞了很久的Unity Shaders,越学越觉得基础知识很重要.学Unity Shader的时候,总会想,shader到底是什么呢?shader的pipeline是什么呢?它们是怎么 ...
- 安卓中的事件分发机制之View控件
前言:Android 中与 Touch 事件相关的方法包括:dispatchTouchEvent(MotionEvent ev).onInterceptTouchEvent(MotionEvent e ...
- Android初级教程理论知识(第五章页面跳转和数据传递)
总体概述: Android四大组件 Activity BroadCastReceiver Service ContentProvider 创建第二个activity 新创建的activity,必须在清 ...
- Linux之使用网络
Linux有好多命令可以让你方便的使用网络,常见的有ssh,rsync,wget,curl等等,但是telnet等方式并不适用于网络交互的使用,因为它会暴露你的用户名密码等.所以一般使用安全的命令来进 ...
- AngularJS进阶(三十五)浏览器兼容性解决之道
浏览器兼容性解决之道 前言 浏览器兼容性一直是前端开发中不得不面对的一个问题.而最突出的就是IE.对绝大多数公司来说,兼容IE6的性价比已经很低,而IE7则几乎已经绝迹.所以,常见的兼容性下限是IE8 ...
- Java图形界面编程生成exe文件
1. 先将代码打成jar,然后使用exe4j转成exe ext4j下载 链接:http://pan.baidu.com/s/1kTCIZtX 密码:pvj1 打开EXE4J Advanced Opti ...
- OpenCV特征点检测算法对比
识别算法概述: SIFT/SURF基于灰度图, 一.首先建立图像金字塔,形成三维的图像空间,通过Hessian矩阵获取每一层的局部极大值,然后进行在极值点周围26个点进行NMS,从而得到粗略的特征点, ...
- 关于iOS常用的26中公共方法,可copy的代码
1. 获取磁盘总空间大小 //磁盘总空间 + (CGFloat)diskOfAllSizeMBytes{ CGFloat size = 0.0; NSError *error; NSDictionar ...