過濾 Excel 電子表格中的信息是一項重要功能。它使您能夠隱藏不相關的數據並僅顯示符合特定條件的數據。在某些情況下,過濾數據可能會有所幫助。例如,一個組織可能希望從銷售報告中過濾掉表現不佳的產品,以分析和改進他們的銷售策略。在本文中,您將了解如何使用 C++ 在 Excel 文件中添加或刪除自動篩選。
- 用於在 Excel 文件中添加和刪除自動篩選的 C++ API
- 使用 C++ 在 Excel 文件中應用自動篩選
- 使用 C++ 在 Excel 文件中添加日期自動篩選
- 使用 C++ 在 Excel 文件中添加動態日期自動篩選器
- 使用 C++ 在 Excel 文件中應用自定義自動篩選
- 從 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 文件中添加自動篩選的步驟。
- 首先,使用 IWorkbook 類加載 Excel 文件。
- 使用 IWorkbook->GetIWorksheets()->GetObjectByIndex (Aspose::Cells::Systems::Int32 index) 方法檢索要在其中應用自動篩選的工作表。
- 使用 IWorksheet->GetIAutoFilter()->SetRange(intrusiveptrAspose::Cells::Systems::String值) 方法。
- 最後,使用 IWorkbook->Save (intrusiveptrAspose::Cells::Systems::String文件名) 方法。
以下示例代碼顯示如何使用 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 文件中添加日期自動篩選的步驟。
- 首先,使用 IWorkbook 類加載 Excel 文件。
- 使用 IWorkbook->GetIWorksheets()->GetObjectByIndex (Aspose::Cells::Systems::Int32 index) 方法檢索要在其中應用自動篩選的工作表。
- 使用 IWorksheet->GetIAutoFilter()->AddDateFilter(Aspose::Cells::Systems::Int32 fieldIndex, Aspose::Cells::DateTimeGroupingType dateTimeGroupingType, Aspose::Cells::Systems::Int32 year, Aspose::Cells::Systems::Int32 應用日期自動篩選::Cells::Systems::Int32 月,Aspose::Cells::Systems::Int32 天,Aspose::Cells::Systems::Int32 小時,Aspose::Cells::Systems::Int32 分鐘,Aspose:: Cells::Systems::Int32 second) 方法。
- 要更新工作表,請使用 IWorksheet->GetIAutoFilter()->Refresh() 方法。
- 最後,使用 IWorkbook->Save (intrusiveptrAspose::Cells::Systems::String文件名) 方法。
以下示例代碼演示瞭如何使用 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 文件中添加動態日期自動篩選器
在某些情況下,您可能需要更通用的日期過濾器,例如不考慮年份的月份或當前月份之前的月份。對於這樣的場景,您可以使用動態自動篩選器來篩選數據。以下是使用動態日期自動篩選器篩選數據的步驟。
- 首先,使用 IWorkbook 類加載 Excel 文件。
- 使用 IWorkbook->GetIWorksheets()->GetObjectByIndex (Aspose::Cells::Systems::Int32 index) 方法檢索要在其中應用自動篩選的工作表。
- 使用 IWorksheet->GetIAutoFilter()->DynamicFilter (Aspose::Cells::Systems::Int32 fieldIndex, Aspose::Cells::DynamicFilterType dynamicFilterType) 方法應用 DynamicFilter。
- 要更新工作表,請使用 IWorksheet->GetIAutoFilter()->Refresh() 方法。
- 最後,使用 IWorkbook->Save (intrusiveptrAspose::Cells::Systems::String文件名) 方法。
以下示例代碼演示瞭如何使用 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 文件中添加自定義自動篩選器的步驟。
- 首先,使用 IWorkbook 類加載 Excel 文件。
- 使用 IWorkbook->GetIWorksheets()->GetObjectByIndex (Aspose::Cells::Systems::Int32 index) 方法檢索要在其中應用自動篩選的工作表。
- 使用 IWorksheet->GetIAutoFilter()->Custom(Aspose::Cells::Systems::Int32 fieldIndex, Aspose::Cells::FilterOperatorType operatorType1, intrusiveptr 應用自定義自動過濾器Aspose::Cells::Systems::Object標準 1) 方法。
- 調用 IWorksheet->GetIAutoFilter()->Refresh() 方法來更新工作表。
- 最後,使用 IWorkbook->Save (intrusiveptrAspose::Cells::Systems::String文件名) 方法。
以下示例代碼顯示如何使用 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 文件中刪除自動篩選器的步驟。
- 首先,使用 IWorkbook 類加載 Excel 文件。
- 使用 IWorkbook->GetIWorksheets()->GetObjectByIndex (Aspose::Cells::Systems::Int32 index) 方法從要刪除 AutoFilter 的位置檢索工作表。
- 使用 IWorksheet->RemoveAutoFilter() 方法移除自動過濾器。
- 最後,使用 IWorkbook->Save (intrusiveptrAspose::Cells::Systems::String文件名) 方法。
以下示例代碼顯示如何使用 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。如有任何疑問,請隨時通過我們的免費支持論壇與我們聯繫。