C# 操作Excel数据透视表

一、概述

数据透视表(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[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数据透视表的示例操作”的全部内容,欢迎转载(转载请注明出处)

感谢阅读!

原文地址:https://www.cnblogs.com/Yesi/p/8715318.html

时间: 2024-08-07 09:35:30

C# 操作Excel数据透视表的相关文章

巧用EXCEL数据透视表分析IIS日志

下面说个比较简单且非常实用的方法,通过EXCEL的一些简单的公式做出想得到的一系列数据,例如时间间隔,爬行页面,返回状态码,网址参数,蜘蛛类型,蜘蛛 IP 等,通过以上数据可 以进行对网站的问题的排查,更正. 首先必须有自己的 服务器 或者能够查看IIS日志的权限,通过 FTP 将iis日志文件从空间中 下载 到本地服务器获取IIS日志的方式:打开IIS,点击要查询网站>右键>属性>网站选项卡>属性>即可看到如图 如果是空间的话有些空间服务上会将日志文件放在网站根目录的.如果

excel 数据透视表 " 启用选定内容" 的用途

excel2007  数据透视表 选定数据透视表---选项---选择 ----启用选定内容(这是一个开关项,按一次有效,再按一次失效) 启用选定内容后,当鼠标在数据透视表上变成黑色小箭头时可以快速选取具有相同属性的标签.值行.字段列.用于批量修改所选区域的属性

excel数据透视表

插入透视表: 点击需要分析的数据区域 ctrl A,点击确定. 以院校统计报名人数为例: 修改布局方式: 分类汇总: 更改计算方式: 套用样式: 合并单元格: 排序: 切片器: 自定义字段: 原文地址:https://www.cnblogs.com/imcati/p/11031575.html

秒杀excel数据透视表,又一逆天可视化分析神器

一.从计算机和手机的发展开始说起 在微软的windows操作系统被广泛应用于各大计算机系统之前,我们见到的电脑大多都是这样的(脑海中不禁浮现起工程师坐在linux电脑前,双手齐刷刷地快速敲打着各种复杂的指令的画面): 万幸我们当今生活在一个微软wndows操作系统已经普及于世的时代,通过借助windows系统高效便捷的可视化界面交互方式,让计算机不再是需要懂技术的人才能使用.从linux到windows的转变,意味着编码式到可视化界面交互方式的飞跃,全民计算机时代已经悄然来临. 同样以手机市场的

EXCEL数据透视表,始终都是性价比最好的分析工具

原始数据和要求: Excel的数据分析结果: 饼图在实际科学分析中用的比较少~商业上还算是比较直观,如果分类标签不是太多的情况下:

利用excel数据透视表实现快速统计相关数据

昨天ytkah在做数据报表时需要做一些具体统计数字:公司每天都有人申请铅笔.笔记本等一些文具用品,现在想要统计每天申请铅笔多少支.笔记本多少本,如下图所示,这个要如何实现呢? excel数据透视表怎么操作?ytkah用的是wps(excel应该类似),选定区域A1-B13 - 插入 - 数据透视表 - 拖动字段“种类”到列标签和数值 框中,拖动“日期”到行标签中,一个数据统计表就出来了,如图右上角所示. 赶脚好强大,记录一下,方便以后查找使用

我们无法找到服务器加载工作簿的数据模型"的 SharePoint 网站,当您刷新 Excel 2013 工作簿中的数据透视表时出错

假定您使用 Analysis Services 源在 Microsoft Excel 2013 中创建数据透视表.将 Excel 工作簿上载到 Microsoft SharePoint 网站中.当您尝试刷新数据透视表或数据透视表中筛选数据时,您会收到以下错误消息: 我们无法找到服务器加载工作簿的数据模型. 由于没有在管理中心网站配置 Analysis Services 实例,将出现此问题. 若要变通解决此问题,请配置 SharePoint 服务器上的 Excel Services 服务应用程序.

Excel数据分类汇总与数据透视表

苏轼的<题西林壁>:横看成岭侧成峰,远近高低各不同.给我们讲述着一个道理:同样的事物与内容,从不同角度观察会得到意想不到的结果.同样,Excel不单单只是一个数据的记录工具,也不单单是一个表格的制作工具,学会怎么从一行一行单调的数据去挖掘出我们想要的信息也是它的一个强项.我们不应小看Excel的挖掘功能,使用好挖掘功能会让我们得到意想不到的效果,将是我们工作中分析问题的一大助力. 下面介绍两种常用的数据分析.挖掘工具:数据分类汇总与数据透视表.要使用的示例数据如下: 呵呵-有点偷懒,还是使用上

如何使用 Python 对 Excel 做一份数据透视表

如何使用 Python 对 Excel 做一份数据透视表客户这边,其中有一张如同上图所示的数据汇总表,然而需求是,需要将这张表数据做一个数据透视表,最后通过数据透视表中的数据,填写至系统数据库.拿到需求,首先就想到肯定不能直接用设计器去操作 Excel,通过操作 Excel 去做数据透视表,那样,就得通过代码去完成了. 代码分享如下: import pandas as pdimport numpy as np def prvot():f = pd.read_excel(io='C:/file/t