数据透视表中的筛选功能可帮助用户根据特定条件缩小显示的数据范围。通过添加筛选器,用户可以聚焦于与分析目标最相关的数据子集,从而更高效、更有针对性地进行数据分析与探索。本文将演示如何在 C# 中为 Excel 数据透视表添加筛选器。
环境准备
开始之前,需要在 .NET 项目中添加相关 Excel 处理库的 DLL 引用。您可以通过下载安装包手动引用 DLL,也可以直接通过 NuGet 安装所需组件。
cs
PM> Install-Package Spire.XLS
在 C# 中为 Excel 数据透视表添加报表筛选器
通过 Excel 操作组件提供的相关 API,可以轻松为数据透视表添加报表筛选器。具体步骤如下:
- 创建
Workbook类的对象。 - 使用
Workbook.LoadFromFile()方法加载 Excel 文件。 - 通过
Workbook.Worksheets[index]属性获取指定工作表。 - 使用
Worksheet.PivotTables[index]属性获取指定的数据透视表。 - 使用
PivotReportFilter类创建报表筛选器。 - 调用
XlsPivotTable.ReportFilters.Add()方法将筛选器添加到数据透视表中。 - 使用
Workbook.SaveToFile()方法保存结果文件。
完整示例代码如下:
cs
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("Sample.xlsx");
// 获取第一个工作表
Worksheet sheet = workbook.Worksheets[0];
// 获取第一个数据透视表
XlsPivotTable pt = sheet.PivotTables[0] as XlsPivotTable;
// 创建报表筛选器
PivotReportFilter reportFilter = new PivotReportFilter("Product", true);
// 将报表筛选器添加到数据透视表
pt.ReportFilters.Add(reportFilter);
// 保存结果文件
workbook.SaveToFile("AddReportFilter.xlsx", FileFormat.Version2016);
workbook.Dispose();
}
}
}
在 C# 中为 Excel 数据透视表的行字段添加筛选器
可以为数据透视表中的指定行字段添加"值筛选"或"标签筛选",从而更灵活地筛选和分析数据。具体步骤如下:
- 创建
Workbook类对象。 - 使用
Workbook.LoadFromFile()方法加载 Excel 文件。 - 通过
Workbook.Worksheets[index]属性获取指定工作表。 - 使用
Worksheet.PivotTables[index]属性获取指定的数据透视表。 - 调用
XlsPivotTable.RowFields[index].AddValueFilter()或XlsPivotTable.RowFields[index].AddLabelFilter()方法,为指定行字段添加值筛选或标签筛选。 - 使用
XlsPivotTable.CalculateData()方法重新计算数据透视表数据。 - 使用
Workbook.SaveToFile()方法保存结果文件。
完整示例代码如下:
cs
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("Sample.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("AddRowFilter.xlsx", FileFormat.Version2016);
workbook.Dispose();
}
}
}
在 C# 中为 Excel 数据透视表的列字段添加筛选器
可以为数据透视表中的指定列字段添加"值筛选"或"标签筛选",以便更精准地控制数据显示内容。具体步骤如下:
- 创建
Workbook类对象。 - 使用
Workbook.LoadFromFile()方法加载 Excel 文件。 - 通过
Workbook.Worksheets[index]属性获取指定工作表。 - 使用
Worksheet.PivotTables[index]属性获取指定的数据透视表。 - 调用
XlsPivotTable.ColumnFields[index].AddValueFilter()或XlsPivotTable.ColumnFields[index].AddLabelFilter()方法,为指定列字段添加值筛选或标签筛选。 - 使用
XlsPivotTable.CalculateData()方法重新计算数据透视表数据。 - 使用
Workbook.SaveToFile()方法保存结果文件。
完整示例代码如下:
cs
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("Sample.xlsx");
// 获取第一个工作表
Worksheet sheet = workbook.Worksheets[0];
// 获取第一个数据透视表
XlsPivotTable pt = sheet.PivotTables[0] as XlsPivotTable;
// 为数据透视表中的第一个列字段添加标签筛选
pt.ColumnFields[0].AddLabelFilter(
PivotLabelFilterType.Equal,
"Laptop",
null);
// 或为数据透视表中的第一个列字段添加值筛选
// pt.ColumnFields[0].AddValueFilter(
// PivotValueFilterType.Between,
// pt.DataFields[0],
// 5000,
// 10000);
// 重新计算数据透视表数据
pt.CalculateData();
// 保存结果文件
workbook.SaveToFile("AddColumnFilter.xlsx", FileFormat.Version2016);
workbook.Dispose();
}
}
}
总结
通过为 Excel 数据透视表添加报表筛选器、行字段筛选器以及列字段筛选器,可以更加灵活地控制和分析数据内容。本文演示了如何在 C# 中使用相关 API 为数据透视表设置不同类型的筛选条件,包括值筛选和标签筛选,并介绍了重新计算数据透视表及保存结果文件的方法。借助这些功能,开发者可以更高效地实现 Excel 数据的自动化筛选与分析,提升数据处理效率和报表的可读性。