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

  1. 创建透视表
  2. 创建数据缓存
  3. 创建数据透视表
  4. 添加行字段和列字段
  5. 添加值字段
  6. 设置样式
  7. 设置行折叠、展开
  8. 设置字段升序、降序
  9. 删除透视表

二、使用工具

  • Spire.XLS for .NET pack(可支持80余种Excel内置的数据透视表样式)
            //创建一个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");
 

测试结果:

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

测试结果:

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

测试结果:

            //创建一个工作簿,并加载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);
 

测试结果:

一、概述数据透视表(Pivot Table)是一种交互式的表,可以进行某些计算,如求和与计数等,可动态地改变透视表版面布置,也可以重新安排行号、列标和页字段。当改变版面布置时,数据透视表也会按照新的布置来进行更新,可以说是一个功能强大的数据分析工具。因此,本篇文章将介绍在C# 中关于Excel数据透视表的操作示例,示例内容主要包含以下要点:创建透视表创建数据缓存创建数据透视表添加行字段和列字段添加...
题目描述: Given a string, determine if it is a palindrome, considering only alphanumeric characters and ignoring cases. For example, "A man, a plan, a canal: Panama" is a palindrome. "race a car" 
原文作者:andreww 原文链接: http://blogs.msdn.com/andreww/archive/2008/07/25/creating-a-pivottable-programmatically.aspx      我接收到一封客户的邮件,问我如何创建Excel数据透视表应用程序.Excel对象模型提供了一系列的对象和方法创建数据透视表(PivotTable).可以通过很...
记得又一次面试问道,需要查询类似Oracle的 full outer join的效果,即 join 查询只有左、右独有的数据。当时就完全懵逼了,现在对Mysql的所有join方式进行整理,下一篇博客对join的具体执行流程进行分析和join的性能优化。 inner join left join right join Mysql使用union实现类似Oracle的 full outer join的效果 数据透视表Pivot Table)是一种交互式的,可以进行某些计算,如求和与计数等,可动态地改变透视版面布置,也可以重新安排行号、列标和页字段。当改变版面布置时,数据透视表也会按照新的布置来进行更新,可以说是一个功能强大的数据分析工具。因此,本篇文章将介绍在C# 中关于Excel数据透视表操作示例,示例内容主要包含以下要点: 创建透视1.1 创建数据缓存1.2创建数据透视表1...