XLSXXLS 文件格式经常用于处理大量数据。同样,自动筛选器用于组织 Excel 文件中的数据。使用 C# 或 VB.NET,您可以使用 Aspose.Cells for .NET API 在 Excel 文件中轻松添加或删除自动筛选。过滤器可用于量化一些数据以提取一些有意义的信息。例如,一个组织想要过滤销售量较低的月份,以便制定和改进他们的策略。在本文中,我们将探讨在 C# 中使用自动过滤器进行数据过滤:

C# VB .NET 在 Excel 文件中添加或删除自动筛选 - API 安装

Aspose.Cells for .NET API 让您可以高效地使用 Excel 电子表格。您可以使用最少的代码以编程方式创建、编辑或操作 XLS、XLSX 和其他受支持的格式。您可以从 下载部分 下载并安装 MSI 或 ZIP 包,或者直接通过解决方案中的 NuGet 库安装它。例如,您可以使用以下命令轻松地将其安装到您的环境中:

Install-Package Aspose.Cells -Version 20.9.0

成功安装 API 后,让我们继续一些重要且有用的用例。

使用 C# 对 Excel 文件中的单元格应用自动筛选

您可以对 Excel 文件中特定范围的单元格应用自动筛选。当单元格包含数值时,这允许您按升序或降序以及其他数字过滤器对值进行排序。您需要按照以下步骤使用 C# 在 Excel 文件中应用自动筛选:

  1. 打开 Excel 文件并访问 工作表
  2. 通过指定特定的单元格范围创建 AutoFilter
  3. 保存输出 XLS/XLSX 文件

代码片段展示了如何使用 C# 对 Excel 文件中的单元格应用自动筛选:

// 实例化工作簿对象
// 通过文件流打开Excel文件
Aspose.Cells.Workbook workbook = new Aspose.Cells.Workbook(dataDir + "book1.xls");

// 访问 Excel 文件中的第一个工作表
Aspose.Cells.Worksheet worksheet = workbook.Worksheets[0];

// 通过给出标题行的单元格范围来创建自动筛选
worksheet.AutoFilter.Range = "A1:B1";

// 保存修改后的 Excel 文件
workbook.Save(dataDir + "output.xlsx");

您可以在下面的屏幕截图中注意到源 XLSX 文件中添加的 AutoFilter:

自动筛选-Excel-Csharp

使用 C# 在 XLSX 中添加日期自动过滤器

Excel 文件中的数据通常包含与日期相关的信息。有时您可能需要根据日期确定的不同时间段来探索信息。例如,让我们考虑需要过滤与 2018 年 1 月相关的数据的情况,那么您需要执行以下步骤:

  1. 加载输入电子表格
  2. 访问工作表
  3. 添加日期过滤器并保存输出文件

以下代码示例遵循这些步骤,并展示了如何使用 C# 在 Excel 文件中添加日期自动筛选:

// 实例化工作簿对象
// 通过文件流打开Excel文件
Workbook workbook = new Workbook(dataDir + "Date.xlsx");

// 访问 Excel 文件中的第一个工作表
Worksheet worksheet = workbook.Worksheets[0];

// 调用 AddDateFilter 函数以应用过滤器
worksheet.AutoFilter.AddDateFilter(0, DateTimeGroupingType.Month, 2018, 1, 0, 0, 0, 0);

// 调用刷新函数更新工作表
worksheet.AutoFilter.Refresh();

// 保存修改后的 Excel 文件
workbook.Save(dataDir + "FilteredDate.xlsx");

使用 C# 在 XLSX 中添加动态日期自动过滤器

正如我们已经讨论过基于日期过滤数据的场景。但是,在某些情况下,日期场景也可以更通用一些。例如,我们需要过滤掉一月份的数据,而不管是哪一年。通过使用以下步骤,可以使用动态日期过滤器轻松处理此类要求:

  1. 加载输入 XLSX 文件
  2. 访问工作表
  3. 为一月设置 DynamicFilter
  4. 保存输出 Excel 工作表

此示例是上述示例的延续,下面的代码片段显示了如何在 C# 中以编程方式在 Excel 文件中添加动态日期自动筛选:

// 实例化工作簿对象
// 通过文件流打开Excel文件
Workbook workbook = new Workbook(dataDir + "Date.xlsx");

// 访问 Excel 文件中的第一个工作表
Worksheet worksheet = workbook.Worksheets[0];

// 调用 DynamicFilter 函数以应用过滤器
worksheet.AutoFilter.DynamicFilter(0, DynamicFilterType.January);

// 调用刷新函数更新工作表
worksheet.AutoFilter.Refresh();

// 保存修改后的 Excel 文件
workbook.Save(dataDir + "FilteredDynamicDate.xlsx");

使用 C# 在 XLSX 中应用自定义数字自动过滤器

您可以使用 Aspose.Cells for .NET API 根据自定义数字范围过滤数据。例如,当一家公司需要访问有多少员工已实现销售目标时。同样,这种过滤技术可以提供很多帮助。让我们假设我们需要过滤所有数字在 5 和 10 范围内的数据,那么您需要按照以下步骤操作:

  1. 实例化一个 Workbook 对象并加载输入文件
  2. 在特定工作表中添加自定义数字过滤器
  3. 保存输出 Excel 文件

基于这些步骤,以下代码显示了如何使用 C# 添加自定义数字自动筛选:

// 实例化工作簿对象
// 通过文件流打开Excel文件
Workbook workbook = new Workbook(dataDir + "Number.xlsx");

// 访问 Excel 文件中的第一个工作表
Worksheet worksheet = workbook.Worksheets[0];

// 调用自定义函数以应用过滤器
worksheet.AutoFilter.Custom(0, FilterOperatorType.GreaterOrEqual, 5, true, FilterOperatorType.LessOrEqual, 10);

// 调用刷新函数更新工作表
worksheet.AutoFilter.Refresh();

// 保存修改后的 Excel 文件
workbook.Save(dataDir + "FilteredNumber.xlsx");

使用 C# 添加带有包含的自定义自动过滤器

从自定义数字自动过滤器进一步移动,让我们学习如何添加自定义自动过滤器,它可用于使用包含过滤器运算符跟踪特定文本。搜索数据中部分或全部存在任何文本的单词会很有用。您应该按照以下步骤来实现这些要求:

  1. 使用数据加载输入 Excel 文件
  2. 指定 AutoFilter 范围和 FilterOperatorType
  3. 保存输出 XLSX 文件

下面的代码片段显示了如何使用 C# 添加带有包含的自定义自动筛选:

// 实例化包含示例数据的 Workbook 对象
Workbook workbook = new Workbook(dataDir + "sourseSampleCountryNames.xlsx");

// 访问 Excel 文件中的第一个工作表
Worksheet worksheet = workbook.Worksheets[0];

// 通过给单元格范围创建自动筛选
worksheet.AutoFilter.Range = "A1:A18";

// 为包含字符串“Ba”的行初始化过滤器
worksheet.AutoFilter.Custom(0, FilterOperatorType.Contains, "Ba");

//刷新过滤器以显示/隐藏过滤的行
worksheet.AutoFilter.Refresh();

// 保存修改后的 Excel 文件
workbook.Save(dataDir + "outSourseSampleCountryNames.xlsx");

使用 C# 在 Excel 中删除或删除自动筛选

我们已经了解了使用 C# 在 Excel 文件中添加自动筛选的不同场景,让我们反过来看看。从 Excel 中删除或删除自动筛选的用例同样重要和关键。您需要按照以下步骤从 XLSX 文件中删除所有自动过滤器:

  1. 加载输入 XLSX 文件
  2. 遍历每个工作表并删除 AutoFilters
  3. 保存输出文件

以下代码片段显示了如何使用 C# 从 Excel 文件中删除自动筛选:

// 实例化工作簿对象
// 打开 Excel 文件
Workbook workbook = new Workbook(dataDir + "output.xlsx");
// 遍历每个工作表
foreach (var sheet in workbook.Worksheets)
{
    // 删除自动过滤器
    sheet.RemoveAutoFilter();
}
// 保存工作簿
workbook.Save(dataDir + "AutoFilter_Removed.xlsx", SaveFormat.Xlsx);

结论

Aspose.Cells for .NET API 为您提供不同的开箱即用功能。在 .NET Framework 中使用 C# 添加、删除或删除自动筛选非常简单。我们已经详细讨论了几种可能性。如果您有任何疑问或疑虑,请随时通过 免费支持论坛 与我们联系。

也可以看看