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

相关推荐
大侠归来6 分钟前
常用 MySQL 分库分表方案详解
数据库·mysql
kingx31 小时前
Windows Server 2008 应急加固实战:7 项入侵痕迹排查与修复
数据库·windows·提权·应急响应·加固
xiaogai_gai1 小时前
采购业务退款单同步实战:从钉钉审批流到金蝶云星空付款单
java·数据库·钉钉
quantdash_cc1 小时前
ETF 行情数据清洗实战:字段语义拆解、标的池整理与五个校验清单
python·数据分析·pandas·量化交易·股票数据·quantdash
AlickLbc2 小时前
DM-V8数据库证书过期处理过程记录
数据库
l1t2 小时前
DeepSeek总结的五分钟测试:Ted Dunning 谈 DuckDB 为何让分析更轻松
数据库·sql·duckdb
超级新零售2 小时前
零售 SaaS 与本地部署,技术责任边界究竟怎么分?
数据库·零售
考虑考虑2 小时前
瀚高数据库
数据库·后端·postgresql
dishugj3 小时前
oracle日志切换三条命令区别
数据库
Patrick在香港3 小时前
一个斜杠,把毫秒变成十几秒
android·数据库·python·性能优化·正则表达式·回溯·redos