2019独角兽企业重金招聘Python工程师标准>>>

一、概述

数据透视表(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. 设置字段排序

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

C#

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

测试效果:

转载于:https://my.oschina.net/u/3716391/blog/1789964

C# 操作Excel数据透视表相关推荐

  1. C# 操作Excel数据透视表详解 – 创建、操作和删除

    数据透视表是Excel中可以进行数据分类汇总和分析的一个强大工具,很多报表形式都可以通过数据透视表来实现.它的一项重要功能是能够重新排列字段项,使用户可以从不同的角度对数据进行分析,并且无需进行复杂的 ...

  2. java数据透视表_使用java如何操作excel数据透视表

    支持楼上,jxl可以.它提供以下API,肯定有你需要的 Workbook类提供的方法 1. int getNumberOfSheets() 获得工作薄(Workbook)中工作表(Sheet)的个数, ...

  3. 我精心整理的 136 页 Excel 数据透视表 PDF 文件!【附获取方式】

    大家好,我是 JackTian. 我的一位好朋友,也是我的一位忠实读者了,从我2018年刚开始做公众号那时,就一直关注到我到现在.累积赠送他书籍共有小 10 余本,我的这位好朋友呢,也非常的良心. 他 ...

  4. mysql 数据透视_把数据库中的数据制作成Excel数据透视表

    如果我们在使用Excel的时候,需要把数据库中的数据制作成Excel数据透视表,我们该怎么操作呢?如果数据在数据库中,我们不用把数据导入到工作表中,我们可以直接以数据库的全部数据或者部分数据制作数据透 ...

  5. excel数据透视表_无痛的方式隐藏Excel数据透视表项

    excel数据透视表 If you're working with an Excel 2007 pivot table, you might want to temporarily hide one ...

  6. excel数据透视表_Excel数据透视表可轻松实现总计

    excel数据透视表 This week I'm working on a client's sales plans for the upcoming fiscal year. They foreca ...

  7. Excel数据透视表系列培训--课时2

    Excel数据透视表系列培训 提高班课程:数据透视表的项目分组 主讲:Kevin Zhou         MVP(Microsoft Most Valuable Professional) 笔记:J ...

  8. [曾贤志]-Excel数据透视表与SQL技术-曾贤志-专题视频课程

    [曾贤志]-Excel数据透视表与SQL技术-1436人已学习 课程介绍         本课主要讲解了数据透视表的应用,之后再结合SQL的应用. 课程收益     本课主要讲解了数据透视表的应用,之 ...

  9. 视频教程-[曾贤志]-Excel数据透视表与SQL技术-Office/WPS

    [曾贤志]-Excel数据透视表与SQL技术 Office培训讲师,51CTO金牌讲师,从2005开始从事Office培训至今.擅长Excel.Word.PowerPoint等软件的应用,著有< ...

最新文章

  1. 用Python进行机器学习(附代码、学习资源)
  2. CNN卷积神经网络可视化:可交互有细节,卷积ReLU池化都一目了然
  3. python能做什么游戏好-Python有做大型游戏的潜力吗?
  4. HDU1402 A * B Problem Plus(FFT)
  5. 差分能量分析介绍(三)
  6. 本周值得读:13 份最新开源「Paper + Code」
  7. 蓝牙连接不上车要hfp_鹅厂又要霸屏,连接四部剧将袭,冲着主创颜值不追不行啦...
  8. 【使用Ubuntu SDK】入门篇——qtcreator 运行qmlscene时 module Ubuntu.Components is not installed 错误分析和解决...
  9. 引介 | RLP 编码和解码
  10. uview组件得到回调的参数
  11. 数理统计基本原理复习
  12. RPGMAKER游戏引擎基于JavaScript的插件制作(一)——前期准备以及RPGMAKER内建逻辑
  13. Python学习笔记(15)-Python代码转换为exe可执行程序详解
  14. 还在用老办法扫描?纸质文档变电子文档,手机这个功能一键搞定!
  15. 四级恋练有词课程 (10课时-朱伟)1.Unit1A单词识记(上)
  16. Stata命令xtreg求残差
  17. 【架构风格】架构风格演进和领域架构分类
  18. 【JVM】类加载系统
  19. 【经验】漫画中人物手臂怎么画?
  20. Box2d源码学习十二b2Collision之碰撞(上)公共部分的实现

热门文章

  1. 苹果官方 Crash文件分析方法 (iOS系统Crash文件分析方法)
  2. ASP.NET Web API 过滤器创建、执行过程(二)
  3. oracle中escape关键字用法
  4. ASP条件语句之IF语句
  5. NA-NP-IE系列实验之前三个实验小结
  6. AJAX 传值数据类型问题
  7. 【T10】记住,TCP__IP不是轮询的
  8. Day3 python基础
  9. Redis 在CentOS 6上的 安装和部署以及redis的主从复制sentinel实现HA
  10. 冬季生存法则,不得不看!