在 Excel 数据透视表中,筛选器是一种控制显示内容的工具。它允许用户根据特定的条件筛选数据,以确保只展示相关信息。例如,用户可以按时间、地区、产品类别或其他关键字段进行筛选,从而减少了无关数据的干扰,提升数据分析的效率。本文将演示如何使用 Spire.XLS for .NET 在 C# 中为 Excel 数据透视表添加筛选器。
安装 Spire.XLS for .NET
首先,您需要将 Spire.XLS for .NET 包含的 DLL 文件作为引用添加到您的 .NET 项目中。DLL 文件可以从此链接下载,也可以通过 NuGet 安装。
PM> Install-Package Spire.XLS
C# 给 Excel 数据透视表添加报表筛选器
Spire.XLS for .NET 提供了 XlsPivotTable.ReportFilters.Add() 方法,用于向 Excel 数据透视表添加报表筛选器。具体步骤如下:
- 创建 Workbook 类的对象。
- 使用 Workbook.LoadFromFile() 方法加载 Excel 文件。
- 通过 Workbook.Worksheets[index] 属性获取指定工作表。
- 使用 Worksheet.PivotTables[index] 属性获取工作表中的指定数据透视表。
- 使用 PivotReportFilter 类创建报表筛选器。
- 通过 XlsPivotTable.ReportFilters.Add() 方法将报表筛选器添加到数据透视表。
- 使用 Workbook.SaveToFile() 方法保存文件。
- C#
using Spire.Xls;
using Spire.Xls.Core.Spreadsheet.PivotTables;
namespace AddReportFilter
{
internal class Program
{
static void Main(string[] args)
{
// 创建 Workbook 对象
Workbook workbook = new Workbook();
// 加载 Excel 文件
workbook.LoadFromFile("示例.xlsx");
// 获取第一个工作表
Worksheet sheet = workbook.Worksheets[0];
// 获取第一个数据透视表
XlsPivotTable pt = sheet.PivotTables[0] as XlsPivotTable;
// 创建报表筛选器
PivotReportFilter reportFilter = new PivotReportFilter("产品", true);
// 将报表筛选器添加到数据透视表
pt.ReportFilters.Add(reportFilter);
// 保存文件
workbook.SaveToFile("报表筛选器.xlsx", FileFormat.Version2016);
workbook.Dispose();
}
}
}
C# 给 Excel 数据透视表的行字段添加筛选器
你可以使用 XlsPivotTable.RowFields[index].AddValueFilter() 或 XlsPivotTable.RowFields[index].AddLabelFilter() 方法为 Excel 数据透视表中的指定行字段添加值筛选器或标签筛选器。具体步骤如下:
- 创建 Workbook 类的对象。
- 使用 Workbook.LoadFromFile() 方法加载 Excel 文件。
- 通过 Workbook.Worksheets[index] 属性获取指定工作表。
- 使用 Worksheet.PivotTables[index] 属性获取工作表中的指定数据透视表。
- 使用 XlsPivotTable.RowFields[index].AddValueFilter() 或 XlsPivotTable.RowFields[index].AddLabelFilter() 方法为特定行字段添加值筛选器或标签筛选器。
- 使用 XlsPivotTable.CalculateData() 方法计算数据透视表的数据。
- 使用 Workbook.SaveToFile() 方法保存文件。
- C#
using Spire.Xls;
using Spire.Xls.Core.Spreadsheet.PivotTables;
namespace AddRowFilter
{
internal class Program
{
static void Main(string[] args)
{
// 创建 Workbook 对象
Workbook workbook = new Workbook();
// 加载 Excel 文件
workbook.LoadFromFile("示例.xlsx");
// 获取第一个工作表
Worksheet sheet = workbook.Worksheets[0];
// 获取第一个数据透视表
XlsPivotTable pt = sheet.PivotTables[0] as XlsPivotTable;
// 为第一个行字段添加值筛选器
pt.RowFields[0].AddValueFilter(PivotValueFilterType.GreaterThan, pt.DataFields[0], 5000, null);
// 或为第一个行字段添加标签筛选器
// pt.RowFields[0].AddLabelFilter(PivotLabelFilterType.Equal, "Mike", null);
// 计算数据透视表数据
pt.CalculateData();
// 保存文件
workbook.SaveToFile("行字段筛选器.xlsx", FileFormat.Version2016);
workbook.Dispose();
}
}
}
C# 给 Excel 数据透视表的列字段添加筛选器
要为数据透视表中的指定列字段添加值筛选器或标签筛选器,你可以使用 XlsPivotTable.ColumnFields[index].AddValueFilter() 或 XlsPivotTable.ColumnFields[index].AddLabelFilter() 方法。具体步骤如下:
- 创建 Workbook 类的对象。
- 使用 Workbook.LoadFromFile() 方法加载 Excel 文件。
- 通过 Workbook.Worksheets[index] 属性获取指定工作表。
- 使用 Worksheet.PivotTables[index] 属性获取工作表中的指定数据透视表。
- 使用 XlsPivotTable.ColumnFields[index].AddValueFilter() 或 XlsPivotTable.ColumnFields[index].AddLabelFilter() 方法为特定列字段添加值筛选器或标签筛选器。
- 使用 XlsPivotTable.CalculateData() 方法计算数据透视表的数据。
- 使用 Workbook.SaveToFile() 方法保存文件。
- C#
using Spire.Xls;
using Spire.Xls.Core.Spreadsheet.PivotTables;
namespace AddColumnFilter
{
internal class Program
{
static void Main(string[] args)
{
// 创建 Workbook 对象
Workbook workbook = new Workbook();
// 加载 Excel 文件
workbook.LoadFromFile("示例.xlsx");
// 获取第一个工作表
Worksheet sheet = workbook.Worksheets[0];
// 获取第一个数据透视表
XlsPivotTable pt = sheet.PivotTables[0] as XlsPivotTable;
// 为第一个列字段添加标签筛选器
pt.ColumnFields[0].AddLabelFilter(PivotLabelFilterType.Equal, "笔记本电脑", null);
// 或为第一个列字段添加值筛选器
// pt.ColumnFields[0].AddValueFilter(PivotValueFilterType.Between, pt.DataFields[0], 5000, 10000);
// 计算数据透视表数据
pt.CalculateData();
// 保存文件
workbook.SaveToFile("列字段筛选器.xlsx", FileFormat.Version2016);
workbook.Dispose();
}
}
}
申请临时 License
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。