使用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 数据的自动化筛选与分析,提升数据处理效率和报表的可读性。

相关推荐
IvorySQL3 小时前
PostgreSQL 日报|修复截断 zstd 备份检测(10 月 9 日)
数据库·postgresql
刘胡子大叔3 小时前
SQL 脚本的导入顺序
数据库·sql
代码什么用4 小时前
Spring对IoC的实现
数据库·spring
hz567896 小时前
涉密视频会议设备配置指南:终端、音视频采集与配套设施选型
服务器·网络·数据库·安全·实时音视频·信息与通信·智能硬件
广州浮点FLOATLIC6 小时前
许可证服务器迁移后软件打不开:研发 IT 怎样定位连接问题
linux·服务器·数据库
程序员Sunday6 小时前
MySQL 为什么使用 B+ 树索引?把范围查询、回表和覆盖索引连起来
数据库·mysql
半杯咖啡半行码6 小时前
Qt开发实战:数据库、MV 模式、QProcess与串口通信全攻略
数据库·qt
小米里的大麦7 小时前
16 MySQL 事务
数据库·mysql
西柚小萌新7 小时前
【LLM&&AI应用开发 八股文】--4.3.Agent智能体(下)
java·开发语言·数据库
Aloudata技术团队7 小时前
Metric Layer 建设指南:如何先从核心指标层启动企业语义工程
数据分析