Примените расширенный фильтр Microsoft Excel для отображения записей, соответствующих сложным условиям, с помощью C++

Возможные сценарии использования

Microsoft Excel позволяет применять Расширенный фильтр к данным листа для отображения записей, соответствующих сложным критериям. Вы можете применить расширенный фильтр через команду Данные > Расширенный, как показано на скриншоте.

todo:image_alt_text

Aspose.Cells также позволяет использовать расширенный фильтр с помощью метода GetAdvancedFilter(). Аналогично Microsoft Excel, он принимает следующие параметры.

isFilter

Указывает, фильтровать ли список на месте.

listRange

Диапазон списка.

criteriaRange

Диапазон критериев.

copyTo

Диапазон, куда копируются данные.

uniqueRecordOnly

Отображение или копирование только уникальных строк.

Применение расширенного фильтра Microsoft Excel для отображения записей, удовлетворяющих сложным критериям

Следующий пример кода применяет расширенный фильтр к пробному Excel-файлу и создает выходной Excel-файл. Скриншот показывает оба файла для сравнения. Внутри скриншота видно, что данные были отфильтрованы внутри выходного файла согласно сложным условиям.

todo:image_alt_text

Образец кода

#include <iostream>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;

int main()
{
    Aspose::Cells::Startup();

    // For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-C

    // Source directory path
    U16String sourceDir(u"..\\Data\\01_SourceDirectory\\");

    // Output directory path
    U16String outputDir(u"..\\Data\\02_OutputDirectory\\");

    // Load your source workbook
    Workbook workbook(sourceDir + u"sampleAdvancedFilter.xlsx");

    // Access first worksheet
    Worksheet ws = workbook.GetWorksheets().Get(0);

    // Apply advanced filter on range A5:D19 and criteria range is A1:D2
    // Besides, we want to filter in place
    // And, we want all filtered records not just unique records
    ws.Advanced_Filter(true, u"A5:D19", u"A1:D2", u"", false);

    // Save the workbook in xlsx format
    workbook.Save(outputDir + u"outputAdvancedFilter.xlsx", SaveFormat::Xlsx);

    std::cout << "Advanced filter applied successfully!" << std::endl;

    Aspose::Cells::Cleanup();
}