使用C#代码在 Excel 中为数据透视表添加筛选器

数据透视表中的筛选功能可帮助用户根据特定条件缩小显示的数据范围。通过添加筛选器,用户可以聚焦于与分析目标最相关的数据子集,从而更高效、更有针对性地进行数据分析与探索。本文将演示如何在 C# 中为 Excel 数据透视表添加筛选器。

环境准备

开始之前,需要在 .NET 项目中添加相关 Excel 处理库的 DLL 引用。您可以通过下载安装包手动引用 DLL,也可以直接通过 NuGet 安装所需组件。

cs 复制代码
PM> Install-Package Spire.XLS

在 C# 中为 Excel 数据透视表添加报表筛选器

通过 Excel 操作组件提供的相关 API,可以轻松为数据透视表添加报表筛选器。具体步骤如下:

  1. 创建 Workbook 类的对象。
  2. 使用 Workbook.LoadFromFile() 方法加载 Excel 文件。
  3. 通过 Workbook.Worksheets[index] 属性获取指定工作表。
  4. 使用 Worksheet.PivotTables[index] 属性获取指定的数据透视表。
  5. 使用 PivotReportFilter 类创建报表筛选器。
  6. 调用 XlsPivotTable.ReportFilters.Add() 方法将筛选器添加到数据透视表中。
  7. 使用 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 数据透视表的行字段添加筛选器

可以为数据透视表中的指定行字段添加"值筛选"或"标签筛选",从而更灵活地筛选和分析数据。具体步骤如下:

  1. 创建 Workbook 类对象。
  2. 使用 Workbook.LoadFromFile() 方法加载 Excel 文件。
  3. 通过 Workbook.Worksheets[index] 属性获取指定工作表。
  4. 使用 Worksheet.PivotTables[index] 属性获取指定的数据透视表。
  5. 调用 XlsPivotTable.RowFields[index].AddValueFilter()XlsPivotTable.RowFields[index].AddLabelFilter() 方法,为指定行字段添加值筛选或标签筛选。
  6. 使用 XlsPivotTable.CalculateData() 方法重新计算数据透视表数据。
  7. 使用 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 数据透视表的列字段添加筛选器

可以为数据透视表中的指定列字段添加"值筛选"或"标签筛选",以便更精准地控制数据显示内容。具体步骤如下:

  1. 创建 Workbook 类对象。
  2. 使用 Workbook.LoadFromFile() 方法加载 Excel 文件。
  3. 通过 Workbook.Worksheets[index] 属性获取指定工作表。
  4. 使用 Worksheet.PivotTables[index] 属性获取指定的数据透视表。
  5. 调用 XlsPivotTable.ColumnFields[index].AddValueFilter()XlsPivotTable.ColumnFields[index].AddLabelFilter() 方法,为指定列字段添加值筛选或标签筛选。
  6. 使用 XlsPivotTable.CalculateData() 方法重新计算数据透视表数据。
  7. 使用 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 数据的自动化筛选与分析,提升数据处理效率和报表的可读性。

相关推荐
sun_linhui8 小时前
数据治理 vs 数据管理 精准区分
数据分析
TDengine (老段)8 小时前
TDengine 数据库创建与参数详解
大数据·数据库·物联网·时序数据库·iot·tdengine·涛思数据
IT策士9 小时前
Django 从 0 到 1 打造完整电商平台:电商项目需求分析与数据库设计
数据库·django·需求分析
阳光九叶草LXGZXJ9 小时前
达梦数据库-学习-52-DmDrs参数介绍(Manager模块)
linux·运维·数据库·sql·学习
六月雨滴9 小时前
Oracle 数据库 RMAN 架构与核心概念
数据库·oracle·dba
企服AI产品测评局9 小时前
2026实测:能耗管控场景下的AI工具数据分析能力横向对比,实在Agent如何通过ISSUT打破数据孤岛?
人工智能·ai·chatgpt·数据挖掘·数据分析
70asunflower9 小时前
相对路径的作用与价值
人工智能·数据挖掘·数据分析
gQ85v10Db9 小时前
Redis分布式锁进阶第三十八篇
数据库·redis·分布式