Фільтрування інформації в електронних таблицях Excel є важливою функцією. Це дозволяє приховати нерелевантні дані та відобразити лише дані, які відповідають певним критеріям. Існують сценарії, коли фільтрація даних може виявитися корисною. Наприклад, організація може захотіти відфільтрувати низькоефективні продукти зі звіту про продажі, щоб проаналізувати та покращити свої стратегії продажів. У цій статті ви дізнаєтесь, як додати або видалити автофільтр у файлах Excel за допомогою C++.

C++ API для додавання та видалення автофільтра у файлах Excel

Ми будемо використовувати API Aspose.Cells for C++ для додавання та видалення автофільтра у файлах Excel. Це рідна бібліотека C++, яка дозволяє створювати, читати та змінювати файли Excel без встановлення Microsoft Excel. Ви можете встановити API через NuGet або завантажити його безпосередньо з розділу Завантаження.

PM> Install-Package Aspose.Cells.Cpp

Застосуйте автофільтр у файлах Excel за допомогою C++

Ви можете застосувати автофільтр до діапазону клітинок. Автофільтри дозволяють сортувати та фільтрувати значення в заданому діапазоні клітинок. Нижче наведено кроки, щоб додати автофільтр у файли Excel.

У наведеному нижче прикладі коду показано, як застосувати автофільтр до діапазону клітинок у файлі Excel за допомогою C++.

// Шлях вихідного каталогу.
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")));
Зображення вихідного файлу, згенерованого зразком коду

Зображення вихідного файлу, згенерованого зразком коду

Додайте автофільтр дат у файли Excel за допомогою C++

Файли Excel можуть містити дані на основі дат. Ви можете опинитися в ситуації, коли вам потрібно буде фільтрувати й аналізувати дані на основі різних дат. Тому фільтр дати виявиться корисним у таких сценаріях. Нижче наведено кроки, щоб додати автофільтр дат у файли Excel.

Наведений нижче приклад коду демонструє, як додати автофільтр дат у файли Excel за допомогою C++.

// Шлях вихідного каталогу.
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")));

Додайте динамічний автофільтр дат у файл Excel за допомогою C++

Можуть бути випадки, коли вам потрібен більш загальний фільтр дати, наприклад місяць незалежно від року або місяць перед поточним місяцем. Для подібних сценаріїв ви можете використовувати динамічний автофільтр для фільтрації даних. Нижче наведено кроки для фільтрації даних за допомогою динамічного автофільтра дат.

Наведений нижче приклад коду демонструє, як додати динамічний автофільтр дат у файл Excel за допомогою C++.

// Шлях вихідного каталогу.
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")));

Застосуйте спеціальний автофільтр у файлах Excel за допомогою C++

Якщо ви хочете застосувати спеціальний автофільтр, Aspose.Cells for C++ API допоможе вам. Використовуючи API, ви можете застосувати спеціальний автофільтр у файлах Excel відповідно до ваших конкретних вимог. Нижче наведено кроки, щоб додати спеціальний автофільтр у файли Excel.

У наведеному нижче прикладі коду показано, як додати спеціальний автофільтр у файли Excel за допомогою C++.

// Шлях вихідного каталогу.
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.

У наведеному нижче прикладі коду показано, як видалити автофільтр із файлу Excel за допомогою C++.

// Шлях вихідного каталогу.
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 без оціночних обмежень, надіславши запит на безкоштовну тимчасову ліцензію.

Висновок

У цій статті ви дізналися, як додавати та видаляти автофільтри з файлів Excel за допомогою C++. Зокрема, ви навчилися додавати автофільтри за замовчуванням, дату, динамічну дату та власні автофільтри. Ви також бачили, як видалити AutoFilter за допомогою Aspose.Cells for C++ API. API надає багато додаткових функцій для роботи з файлами Excel. Ви можете детально вивчити API, відвідавши офіційну документацію. У разі будь-яких запитань зв’яжіться з нами на нашому безкоштовному форумі підтримки.

Дивись також