一、概述

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

1. 创建透视表

(1)创建数据缓存

(2)创建数据透视表

(3)添加行字段和列字段

(4)添加值字段

(5)设置样式

2.  设置行折叠、展开

3.  设置字段升序、降序

4.  删除透视表

二、准备工具

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数据透视表的更多相关文章

  1. VSTO学习笔记(十四)Excel数据透视表与PowerPivot

    原文:VSTO学习笔记(十四)Excel数据透视表与PowerPivot 近期公司内部在做一种通用查询报表,方便人力资源分析.统计数据.由于之前公司系统中有一个类似的查询使用Excel数据透视表完成的 ...

  2. Java 创建 Excel 数据透视表

    Excel 数据透视表具有强大的数据处理功能,能够使表格中的数据更加直观化.使用Excel 数据透视表,能方便用户快速的排序. 筛选各种数据,同时也能满足用户对不同数据汇总的需求.本文将介绍如何在Ja ...

  3. 使用excel 数据透视表画图

    ①    打开Excel,选中需要制表的数据,点击“插入”->“数据透视表”          ②    出现下列对话框,点击“确定”          ③    再新的“sheet”表内对“数 ...

  4. Excel数据透视表的日常应用技巧

    对工作表中数据进行统计是经常需要的.一般情况我们都是使用菜单命令或函数来进行数据的统计的.可是如果要统计的工作表中记录很多,而且需要统计的项目也很多时,使用这种方法就显得力不从心了.请问还有什么更好的 ...

  5. 妙用Excel数据透视表和透视图向导,将二维数据转换为一维数据

    项目中,每年都会有各种经销商的各种产品目标数据导入,经销商和产品过多,手工操作过于单调和复杂.那有没有一种方式可以将复杂的二维数据转换为一维数据呢? 有,强大的Excel就支持此功能. 常用Excel ...

  6. delphi 控制 EXCEL 数据透视表

    虽说报表多又难做,做报表相当容易. 做报表也可以偷懒的,超级实用又省事.只需要做一个报表,这个报表里面包括几乎所有的数据字段,然后将查询到的数据导出到 excel中,利用excel自带的“数据透视”功 ...

  7. Excel数据透视表

    Excel中每列是一个字段,每行是一条记录. 值字段设置,双击更改统计方法. 双击透视表中的数据可以看具体是哪些记录贡献的这些数据. 显示报表筛选页,生成多个工作簿.

  8. Excel学习 -- 数据透视表功能

    Excel -- 数据透视表基础 数据透视表(Pivot Table)是一种交互式的表,可以进行某些计算,如求和与计数等.所进行的计算与数据跟数据透视表中的排列有关.    之所以称为数据透视表,是因 ...

  9. Excel应用程序如何创建数据透视表

    原文作者:andreww 原文链接: http://blogs.msdn.com/andreww/archive/2008/07/25/creating-a-pivottable-programmat ...

随机推荐

  1. Python Skelve 库

    在Python中有一个简单的轻量级的类似于Key-value的存储型数据库,那就是Skelve.下面就来一起看一看这个库的简单的使用吧. 小例子 我本人比较喜欢从例子出发,然后再来研究这些内部的行为. ...

  2. ExtJS学习(三)Grid表格

    表格说明 Ext中的表格功能非常强大,包括排序.缓存.拖动.隐藏某一列.自动显示行号.列汇总.单元格编辑等实用功能.表格由类Ext.grid.GridPanel定义,继承自Ext.Panel,其xty ...

  3. Java基础---Java---正则表达式-----匹配、切割、替换、获取等方法

    正则表达式:符合一定规则的表达式 作用:用于专门操作字符串 特点:用于一些特定的符号来表示一些代码操作,这样就简化书写,主要是学习一些特殊符号的使用 好处:可以简化对字符串的复杂操作. 弊端:符号定义 ...

  4. Python与JavaWeb的第一次碰撞

    在Python中向服务器提交一个表单数据看起来是很容易的,但是这次经历着实让我记忆深刻,借此也为了警醒同样遇到了这样问题的你们. 要做什么? 使用Python的urllib2模块提交表单数据,并在服务 ...

  5. CCM和GCM

    分组密码链接-消息认证码--CCM    Counter with CBC-MAC 组成CCM的关键算法是AES加密算法.CTR工作模式和CMAC认证算法,在加密和MAC算法中共用一个密钥K. CCM ...

  6. Cookie 进阶

    Cookie作为一个客户端技术被广泛的应用着.我今天也来谈一谈我对Cookie的理解. 先来一个小菜(实现"上次登录时间") 具体的思路如下: 通过request.getCooki ...

  7. Android:android sdk源码中怎么没有httpclient的源码了

    欢迎关注公众号,每天推送Android技术文章,二维码如下:(可扫描) 今天想使用这个API,怎么也找不到.废了好多时间... 查阅资料才知道如下解释: 在android 6.0(API 23)中,G ...

  8. Tomcat的管道

    Tomcat中按照包含关系一共有四个容器--StandardEngine.StandardHost.StandardContext和StandardWrapper,对这四个容器的详细解析后面会涉及,请 ...

  9. ROS_Kinetic_08 ROS的集成开发环境(IDEs)之使用Eclipse

    ROS_Kinetic_08 ROS的集成开发环境(IDEs)之使用Eclipse ROS支持的IDEs比较丰富,这里以Eclipse为例介绍一下. 具体内容参考:http://wiki.ros.or ...

  10. javascript之JSON小案例,实现添加数据与清楚数据

    对json应用给出一个小案例,加深一些理解: <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" & ...