过滤 Excel 电子表格中的信息是一项重要功能。它使您能够隐藏不相关的数据并仅显示满足特定条件的数据。在某些情况下,过滤数据可能会有所帮助。例如,一个组织可能希望从销售报告中过滤掉表现不佳的产品,以分析和改进他们的销售策略。在本文中,您将学习如何使用 C++ 在 Excel 文件中添加或删除自动筛选。

在 Excel 文件中添加和删除自动筛选的 C++ API

我们将使用 Aspose.Cells for C++ API 在 Excel 文件中添加和删除自动筛选。它是一个本地 C++ 库,允许您创建、读取和修改 Excel 文件,而无需安装 Microsoft Excel。您可以通过 NuGet 安装 API,也可以直接从 下载 部分下载。

PM> Install-Package Aspose.Cells.Cpp

使用 C++ 在 Excel 文件中应用自动筛选

您可以在一系列单元格上应用自动筛选。自动过滤器允许您对给定单元格范围内的值进行排序和过滤。以下是在 Excel 文件中添加自动筛选的步骤。

以下示例代码显示了如何使用 C++ 将自动筛选应用于 Excel 文件中的单元格区域。

// 源目录路径。
StringPtr srcDir = new String("SourceDirectory\\");

// 输出目录路径。
StringPtr outDir = new String("OutputDirectory\\");

// 加载源 Excel 文件
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("Book3.xlsx")));

// 访问 Excel 文件中的第一个工作表
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);

// 通过给出单元格范围创建自动筛选
worksheet->GetIAutoFilter()->SetRange(new String("A1:B1"));

// 保存 Excel 文件
workbook->Save(outDir->StringAppend(new String("AutoFilter_out.xlsx")));
示例代码生成的输出文件的图像

示例代码生成的输出文件的图像

使用 C++ 在 Excel 文件中添加日期自动筛选

Excel 文件可能包含基于日期的数据。您可能会发现自己需要根据不同日期过滤和分析数据。因此,日期过滤器将被证明在这种情况下很有帮助。以下是在 Excel 文件中添加日期自动筛选的步骤。

以下示例代码演示了如何使用 C++ 在 Excel 文件中添加日期自动筛选。

// 源目录路径。
StringPtr srcDir = new String("SourceDirectory\\");

// 输出目录路径。
StringPtr outDir = new String("OutputDirectory\\");

// 加载源 Excel 文件
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("Book4.xlsx")));

// 访问 Excel 文件中的第一个工作表
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);

// 调用 AddDateFilter 函数以应用过滤器
worksheet->GetIAutoFilter()->AddDateFilter(0, DateTimeGroupingType_Month, 2018, 1, 1, 0, 0, 0);

// 调用 Refresh 函数更新工作表
worksheet->GetIAutoFilter()->Refresh();

// 保存 Excel 文件
workbook->Save(outDir->StringAppend(new String("DateFilter_out.xlsx")));

使用 C++ 在 Excel 文件中添加动态日期自动筛选

在某些情况下,您可能需要更通用的日期过滤器,例如与年份无关的月份或当前月份的前一个月。对于这样的场景,您可以使用动态 AutoFilter 来过滤数据。以下是使用动态日期自动过滤器过滤数据的步骤。

以下示例代码演示了如何使用 C++ 在 Excel 文件中添加动态日期自动筛选。

// 源目录路径。
StringPtr srcDir = new String("SourceDirectory\\");

// 输出目录路径。
StringPtr outDir = new String("OutputDirectory\\");

// 加载源 Excel 文件
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("Book4.xlsx")));

// 访问 Excel 文件中的第一个工作表
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);

// 调用 DynamicFilter 函数以应用过滤器
worksheet->GetIAutoFilter()->DynamicFilter(0, DynamicFilterType_Februray);

// 调用 Refresh 函数更新工作表
worksheet->GetIAutoFilter()->Refresh();

// 保存 Excel 文件
workbook->Save(outDir->StringAppend(new String("DynamicDateAutoFilter_out.xlsx")));

使用 C++ 在 Excel 文件中应用自定义自动筛选

如果您想应用自定义自动过滤器,Aspose.Cells for C++ API 可以满足您的需求。使用 API,您可以根据您的特定要求在 Excel 文件中应用自定义自动筛选。以下是在 Excel 文件中添加自定义自动筛选的步骤。

以下示例代码展示了如何使用 C++ 在 Excel 文件中添加自定义自动筛选。

// 源目录路径。
StringPtr srcDir = new String("SourceDirectory\\");

// 输出目录路径。
StringPtr outDir = new String("OutputDirectory\\");

// 加载源 Excel 文件
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("sampleCountryNames.xlsx")));

// 访问 Excel 文件中的第一个工作表
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);

// 调用自定义函数以应用过滤器
worksheet->GetIAutoFilter()->Custom(0, FilterOperatorType_Equal, new String("Brazil"));

// 调用 Refresh 函数更新工作表
worksheet->GetIAutoFilter()->Refresh();

// 保存 Excel 文件
workbook->Save(outDir->StringAppend(new String("CustomFilter_out.xlsx")));

从 Excel 文件中删除自动筛选

在前面的部分中,您学习了如何在 Excel 文件中添加不同的自动筛选。除了添加自动过滤器,您还可以使用 Aspose.Cells for C++ API 删除它们。以下是从 Excel 文件中删除自动筛选的步骤。

以下示例代码显示如何使用 C++ 从 Excel 文件中删除自动筛选。

// 源目录路径。
StringPtr srcDir = new String("SourceDirectory\\");

// 输出目录路径。
StringPtr outDir = new String("OutputDirectory\\");

// 加载源 Excel 文件
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("SampleAutoFilter.xlsx")));

// 访问 Excel 文件中的第一个工作表
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);

// 删除自动过滤器
worksheet->RemoveAutoFilter();

// 保存 Excel 文件
workbook->Save(outDir->StringAppend(new String("RemoveAutoFilter_out.xlsx")));

获得免费许可证

您可以通过申请 免费的临时许可证 来试用该 API,而不受评估限制。

结论

在本文中,您学习了如何使用 C++ 在 Excel 文件中添加和删除自动筛选。具体来说,您已经学习了如何添加默认、日期、动态日期和自定义自动筛选。您还看到了如何使用 Aspose.Cells for C++ API 删除 AutoFilter。该 API 提供了许多用于处理 Excel 文件的附加功能。您可以通过访问 官方文档 来详细探索 API。如有任何问题,请随时通过我们的 免费支持论坛 与我们联系。

也可以看看