`

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 for .NET 库,可以轻松地创建、设置和操作 Excel 数据透视表。以下是 C# 操作 Excel 数据透视表的知识点: 1. 创建透视表: 创建数据缓存...

    C# 操作Excel案例

    3. **高级操作**:除了基本的读写,C#还可以执行更复杂的Excel操作,如合并单元格、设置条件格式、处理图表和数据透视表、导入导出数据等。例如,创建一个简单的数据透视表: ```csharp Excel.PivotTable pivot = ...

    Excel透视表报表生成组件编程代码

    在IT行业中,Excel透视表是一种强大的数据分析工具,它允许用户以直观的方式对大量数据进行汇总、分析和展示。为了在自定义程序中实现这一功能,开发者可以利用编程代码来生成Excel透视表。在这个"Excel透视表报表...

    用 Spire.Xls 生成的excel 透视表

    在编程环境中,如.NET,我们可以使用第三方库如Spire.Xls来生成和操作Excel文件,包括创建透视表。Spire.Xls是一款全面的.NET Excel组件,支持多种Excel功能,包括创建、读取、写入和编辑Excel文件。 生成Excel透视...

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

    本话题主要探讨如何使用C# .NET框架创建并操作Excel数据透视表,尤其是实现对多个项目的过滤功能。数据透视表是一种强大的数据分析工具,它可以快速汇总、分析、探索和呈现大量数据的复杂关系。 首先,要实现这一...

    C#联合excel编程

    在IT行业中,C#是一种广泛使用的编程语言,尤其在创建桌面应用程序和企业级...通过不断的实践和学习,开发者可以进一步掌握复杂的数据处理技巧,如数据透视表、图表生成,甚至是复杂的VBA集成,以满足更高级的需求。

    数据处理软件与实践2020春季 实验五 数据透视表 认识数组1

    本实验"数据处理软件与实践2020春季 实验五 数据透视表 认识数组1"旨在让学生掌握数据透视表的创建与基本操作,通过实际操作加深对数据统计的理解。 实验目的包括: 1. 掌握数据透视表的创建,了解其基本功能,如...

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

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

    Excel数据操作与TeeChart控件的使用(C#)

    - 处理数据透视表和图表。 - 自定义样式和格式。 2. TeeChart控件的使用: TeeChart是Steema Software开发的一款图形组件,支持多种编程语言,包括C#。它提供了丰富的图表类型,如线图、柱状图、饼图、散点图等...

    C# datagridview控件中的数据导出EXCEL表

    8. **标签“EXCEL表”**:Excel表格是用于组织和分析数据的常用工具,它的功能强大,包括公式计算、图表制作、数据透视表等。 9. **文件“GetWorkTime”**:根据文件名猜测,可能是一个用于获取程序运行时间的函数...

    C# Excel 类库

    6. **样式和格式**: 开发者可以设置单元格的字体、颜色、边框、填充等样式,以及调整列宽和行高,甚至创建图表和透视表。 7. **条件格式和公式**: 类库允许在代码中应用条件格式规则,并支持创建和执行Excel公式。 ...

    C#对Excel 的一些编程资料

    C#可以通过Excel API创建图表,设置公式,应用条件格式规则,甚至处理数据透视表。 - `Worksheet.ChartObjects.Add`可以创建新的图表对象,`Range`对象可指定数据源,`Chart.SeriesCollection.NewSeries`用于添加...

    VB.NET结合EXCEL统计生产报表

    这个例子中,Form1_Load事件处理程序加载SortedList,打开Excel工作簿,处理数据,然后将SortedList中的内容写入Excel的工作表。这只是一个简化的例子,实际的统计过程可能需要更复杂的逻辑来搜索和分析生产计划数据...

    C#实现EXCEL文件读取.doc

    ### C#实现EXCEL文件读取的关键知识点 #### 一、理解Excel对象模型 在C#中处理Excel文件时,...通过以上知识点的学习和理解,开发者可以有效地在C#中实现对Excel文件的操作,无论是简单的数据读写还是复杂的报表生成。

    Excel、Exchange 和 C#,介绍如何使用 Outlook、Excel 和 C# 创建自定义的日历

    此外,Excel的数据透视表和图表功能可以用于分析和可视化数据,例如统计特定时间段内的任务数量或按优先级排序。 Exchange Server是一款企业级的信息管理平台,它提供了电子邮件、日历、联系人管理等功能。与...

    关于C#如何利用Excel制作高级报表的例子

    此外,还可以利用公式、图表、透视表等功能增强报表的分析能力。记住,无论是Interop还是EPPlus,都应确保在完成操作后正确释放资源,避免内存泄漏。 通过以上内容,你应该能理解如何利用C#来创建高级的Excel报表了...

    spire xls vs c# excel操作插件免费版

    Spire.XLS的优势在于其全面的API,支持复杂的Excel操作,例如图表、数据透视表、宏和VBA。然而,免费版可能不包含所有高级特性,比如PDF导出、加密解密等,且可能有限制的商业使用条款。 另一方面,C#中的Microsoft...

    c#-调用Excel的一些知识.docx

    它包含了多种不同的对象,从简单的矩形、文本框到复杂的透视表、图表等。下面介绍几个最常用的对象: 1. **Application 对象**:处于 Excel 对象层次结构的顶层,代表了 Excel 应用程序的运行环境。可以通过该对象...

    excle 数据操作大全

    - 数据透视表:通过编程实现类似Excel内置的数据透视表功能,进行多维度数据分析。 4. **跨sheet和跨文件操作**: - 在同一个Excel文件的不同工作表之间进行数据交换和整合。 - 合并多个Excel文件的数据,可以是...

Global site tag (gtag.js) - Google Analytics