C# 操作Excel数据透视表
发布时间:2020-12-16 01:09:54 所属栏目:百科 来源:网络整理
导读:一、概述 数据透视表(Pivot Table)是一种交互式的表,可以进行某些计算,如求和与计数等,可动态地改变透视表版面布置,也可以重新安排行号、列标和页字段。当改变版面布置时,数据透视表也会按照新的布置来进行更新,可以说是一个功能强大的数据分析工具
一、概述数据透视表(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 =设置行字段的标题 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"); 测试结果: 2. 设置行折叠、展开C# 创建Workbook类对象,加载Excel文档 Workbook workbook = 获取数据透视表 XlsPivotTable pivotTable = workbook.Worksheets[0].PivotTables[0] as XlsPivotTable; 计算数据 pivotTable.CalculateData(); 展开”月份”字段下“2”的详细信息 (pivotTable.PivotFields["] as Spire.Xls.Core.Spreadsheet.PivotTables.XlsPivotField).HideItemDetail(2false); 折叠”月份”字段下“3”的详细信息 (pivotTable.PivotFields[3true保存并打开文档 workbook.SaveToFile(折叠、展开行.xlsx"); 测试结果: 3. 设置字段排序这里支持三种不同类型的排序,可根据需要选择相应的排序类型。 ? C# 创建一个Workbook类对象,并加载Excel文档 Workbook workbook = 获取数据透视表 Spire.Xls.Core.Spreadsheet.PivotTables.XlsPivotTable pivotTable = workbook.Worksheets[ Spire.Xls.Core.Spreadsheet.PivotTables.XlsPivotTable; 对指定字段进行升序排序 pivotTable.PivotFields[2].SortType = PivotFieldSortType.Ascending; 升序.xlsx"); 测试结果: 4. 删除透视表删除透视表可通过以下两种方法:
创建一个工作簿,并加载Excel文档 Workbook workbook = 删除第一张工作表上名称为“PivotTable”的数据透视表 workbook.Worksheets[0].PivotTables.Remove(删除第一张工作表上索引为0即第一个数据透视表 workbook.Worksheets[0].PivotTables.RemoveAt(0); 保存文档 workbook.SaveToFile(删除数据透视表.xlsx |