Verwenden Sie den erweiterten Filter von Microsoft Excel, um Datensätze anhand komplexer Kriterien mit C++ anzuzeigen

Mögliche Verwendungsszenarien

Microsoft Excel ermöglicht es, Erweiterte Filter auf Tabellenblatt-Daten anzuwenden, um Datensätze zu filtern, die komplexen Kriterien entsprechen. Sie können den erweiterten Filter in Excel über den Befehl Daten > Erweitert ausführen, wie im Screenshot gezeigt.

todo:image_alt_text

Aspose.Cells ermöglicht ebenfalls die Anwendung des erweiterten Filters mit der GetAdvancedFilter()-Methode. Genau wie Microsoft Excel akzeptiert sie die folgenden Parameter.

isFilter

Gibt an, ob die Liste am gleichen Ort gefiltert wird.

listRange

Der Listenbereich.

criteriaRange

Der Kriterienbereich.

copyTo

Der Bereich, in den Daten kopiert werden.

uniqueRecordOnly

Nur eindeutige Zeilen anzeigen oder kopieren.

Erweiterten Filter von Microsoft Excel anwenden, um Datensätze anhand komplexer Kriterien anzuzeigen

Der folgende Beispielcode wendet den erweiterten Filter auf die Beispiel-Excel-Datei an und erstellt die Ausgabe-Excel-Datei. Der Screenshot zeigt beide Dateien zum Vergleich. Wie im Screenshot sichtbar ist, wurden die Daten innerhalb der Ausgabedatei entsprechend komplexer Kriterien gefiltert.

todo:image_alt_text

Beispielcode

#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();
}