過濾 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 文件中添加動態日期自動篩選器

在某些情況下,您可能需要更通用的日期過濾器,例如不考慮年份的月份或當前月份之前的月份。對於這樣的場景,您可以使用動態自動篩選器來篩選數據。以下是使用動態日期自動篩選器篩選數據的步驟。

以下示例代碼演示瞭如何使用 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。如有任何疑問,請隨時通過我們的免費支持論壇與我們聯繫。

也可以看看