博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C# 操作Excel数据透视表
阅读量:7009 次
发布时间:2019-06-28

本文共 3686 字,大约阅读时间需要 12 分钟。

一、概述

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

1. 创建透视表

     (1)创建数据缓存

     (2)创建数据透视表

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

     (4)添加值字段

     (5)设置样式

2.  设置行折叠、展开

3.  设置字段升序、降序

4.  删除透视表

二、准备工具

  • (可支持80余种Excel内置的数据透视表样式)

PS:安装后,注意在项目中引用Spire.XLS.dll再进行代码操作,dll文件在安装路径下的Bin文件夹中获取。

三、示例操作

1.创建透视表

C#

//创建一个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. 设置行折叠、展开

C#

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

测试结果:

以上内容为本次关于“Excel数据透视表的示例操作”的全部内容,欢迎转载(转载请注明出处)

感谢阅读!

你可能感兴趣的文章
pku 2186 Popular Cows (tarjan缩点)
查看>>
c关键字控制语句运算符小结
查看>>
初学Oracle的笔记(1)——基础内容(实时更新中..)
查看>>
(转)Ogre 安装 配置 问题
查看>>
【转】清理浮动的全家
查看>>
ZJOI2006 物流运输trans
查看>>
WinForm编程数据视图之DataGridView浅析(续)
查看>>
vim中实现括号和引号自动补全
查看>>
linux下的块设备驱动(一)
查看>>
Git-Flow
查看>>
mysql 5.7 安装手册(for linux)
查看>>
7.1-7.31推荐文章汇总
查看>>
ubuntu16.4中安装samba服务
查看>>
IT Operations(IT 运营),运维的更价值化认识
查看>>
eclipse启动时虚拟机初始内存配置
查看>>
在Linux用户空间做内核空间做的事情
查看>>
Chapter 1 First Sight——29
查看>>
SSH的jar包下载地址
查看>>
Solve VS2010 Error "Exceptions has been thrown by the target of an invocation"
查看>>
点击发送短信剩余秒数
查看>>