`

C# 操作Excel数据透视表

阅读更多

本文转自博客:http://www.cnblogs.com/Yesi/p/8715318.html

一、概述

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

1. 创建透视表

     (1)创建数据缓存

     (2)创建数据透视表

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

     (4)添加值字段

     (5)设置样式

2.  设置行折叠、展开

3.  设置字段升序、降序

4.  删除透视表

二、准备工具



 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. 设置字段排序

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



 

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

 测试结果:


  • 大小: 68.9 KB
  • 大小: 126.1 KB
  • 大小: 70 KB
  • 大小: 38.6 KB
  • 大小: 95.2 KB
  • 大小: 45.9 KB
分享到:
评论

相关推荐

    C#如何操作Excel数据透视表

    主要为大家详细介绍了C#如何操作Excel数据透视表, 创建透视表、设置行折叠、展开等操作,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

    用 Spire.Xls 生成的excel 透视表

    用 Spire.Xls 生成的excel 透视表,连官方帮助文档都没有样式效果图,只能人工一个个去试试,只试了一部分,把最好看的放第一位,希望可以帮到需要的人

    vue-pivot-table-数据透视表的vue组件-Vue.js开发

    vue-pivot-table组件此项目提供2个组件:数据透视表:具有拖放用户界面的聚合表,用于配置行/列数据透视表:仅聚合表尽管数据透视表组件提供了完整的体验,但如果只需要一个表,则可以单独使用数据透视表。...

    C#Excel-数据透视表(对多个项目进行过滤)

    将筛选器添加到数据透视表中,可以在其中选择多个项目。

    C#实现Excel动态生成PivotTable

    Excel 中的透视表对于数据分析来说,非常的方便,而且很多业务人员对于Excel的操作也是非常熟悉的,因此用Excel作为分析数据的界面,不失为一种很好的选择。那么如何用C#从数据库中抓取数据,并在Excel 动态生成...

    免费版.NET Excel组件_Free Spire.XLS for .NET 8.3

    Free Spire.XLS for .NET 是 Spire.XLS for .NET 的免费版本,无需购买即可用于个人或...此外,它支持使用 C#、VB.NET 或 ASP.NET 在数据库和 Excel 之间进行数据传输,支持超链接和模板,支持创建和获取数据透视表。

    FastReport设计 详细讲解.doc

    4. 支持交叉表,类似EXCEL中的透视表 5. 可以预览、打印、导出为通用的文档格式, 在预览对话框里有导航功能 6. 标准的报表创建向导 7. 内嵌的脚本引擎支持C# 和VB.NET 8. 能够在预先准备好的报表里搜索文本 9. ...

    Seal-Report:打开数据库报告工具(.Net)

    本机数据透视表:只需将元素直接拖放到数据透视表(“交叉”选项卡)中,然后将其显示在报表中。 HTML 5图表:两次单击即可定义和显示“艺术”系列(支持ChartJS,NVD3和Plotly库)。 KPI和窗口小部件视图:在...

    锐浪报表Grid++Report5.3

    7、报表数据导出格式丰富,格式包括:Excel、RTF、PDF、图像、HTML、文本,CSV 等。 8、支持数十种一维条码,支持PDF417与QRCode这两种最常用的二维条码,条码打印精度高且易读取。 9、提供脚本编程功能,直接在报表...

    Grid++Report5.5报表工具

    7、报表数据导出格式丰富,格式包括:Excel、RTF、PDF、图像、HTML、文本,CSV 等。 8、支持数十种一维条码,支持PDF417与QRCode这两种最常用的二维条码,条码打印精度高且易读取。 9、提供脚本编程功能,直接在报表...

    Grid++Report5.6报表开发工具

    7、报表数据导出格式丰富,格式包括:Excel、RTF、PDF、图像、HTML、文本,CSV 等。 8、支持数十种一维条码,支持PDF417与QRCode这两种最常用的二维条码,条码打印精度高且易读取。 9、提供脚本编程功能,直接在报表...

    Grid++Report5报表工具 版本5.5.0.8

    7、报表数据导出格式丰富,格式包括:Excel、RTF、PDF、图像、HTML、文本,CSV 等。 8、支持数十种一维条码,支持PDF417与QRCode这两种最常用的二维条码,条码打印精度高且易读取。 9、提供脚本编程功能,直接在报表...

    Grid++Report6 报表开发者安装包

    7、报表数据导出格式丰富,格式包括:Excel、RTF、PDF、图像、HTML、文本,CSV 等。 8、支持数十种一维条码,支持PDF417与QRCode这两种最常用的二维条码,条码打印精度高且易读取。 9、提供脚本编程功能,直接在报表...

    Grid++Report报表控件4.5.0.2

    6、报表数据导出格式丰富,格式包括:Excel、PDF、图像、HTML、文本,CSV 等。 7、提供脚本编程功能,直接在报表模板中自定义报表行为,采用通用的 VBScript 与 JScript 脚本引擎。 8、支持参数化报表查询...

    Grid++Report报表开发工具

    6、报表数据导出格式丰富,格式包括:Excel、PDF、图像、HTML、文本,CSV 等。 7、提供脚本编程功能,直接在报表模板中自定义报表行为,采用通用的 VBScript 与 JScript 脚本引擎。 8、支持参数化报表查询...

    打印控件ocx

    报表数据导出格式丰富,包括:Excel、PDF、图像、HTML、文本,CSV等多种格式。 支持所有常规条形码。 报表模板提供脚本编程功能,直接在报表模板中自定义报表行为。 支持参数化报表查询SQL语句,...

    数字证书驱动

    报表数据导出格式丰富,包括:Excel、PDF、图像、HTML、文本,CSV等多种格式。 支持所有常规条形码。 报表模板提供脚本编程功能,直接在报表模板中自定义报表行为。 支持参数化报表查询SQL语句,...

Global site tag (gtag.js) - Google Analytics