Das Filtern von Informationen in Excel-Tabellen ist eine wichtige Funktion. Es ermöglicht Ihnen, irrelevante Daten auszublenden und nur die Daten anzuzeigen, die bestimmte Kriterien erfüllen. Es kann Szenarien geben, in denen sich das Filtern von Daten als hilfreich erweisen kann. Beispielsweise möchte eine Organisation leistungsschwache Produkte aus dem Verkaufsbericht herausfiltern, um ihre Verkaufsstrategien zu analysieren und zu verbessern. In diesem Artikel erfahren Sie, wie Sie AutoFilter in Excel Dateien mit C++ hinzufügen oder entfernen.

C++-API zum Hinzufügen und Entfernen von AutoFilter in Excel Dateien

Wir verwenden die API Aspose.Cells for C++ zum Hinzufügen und Entfernen von AutoFilter in Excel Dateien. Es ist eine native C++ Bibliothek, mit der Sie Excel Dateien erstellen, lesen und ändern können, ohne dass Microsoft Excel installiert sein muss. Sie können die API entweder über NuGet installieren oder direkt aus dem Abschnitt Downloads herunterladen.

PM> Install-Package Aspose.Cells.Cpp

Wenden Sie AutoFilter in Excel Dateien mit C++ an

Sie können AutoFilter auf einen Zellbereich anwenden. Mit AutoFiltern können Sie Werte im angegebenen Zellbereich sortieren und filtern. Im Folgenden sind die Schritte zum Hinzufügen von AutoFilter in Excel Dateien aufgeführt.

Der folgende Beispielcode zeigt, wie AutoFilter mithilfe von C++ auf einen Zellbereich in einer Excel Datei angewendet wird.

// Quellverzeichnispfad.
StringPtr srcDir = new String("SourceDirectory\\");

// Verzeichnispfad ausgeben.
StringPtr outDir = new String("OutputDirectory\\");

// Laden Sie die Excel quelldatei
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("Book3.xlsx")));

// Greifen Sie auf das erste Arbeitsblatt in der Excel Datei zu
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);

// Erstellen von AutoFilter durch Angabe des Zellbereichs
worksheet->GetIAutoFilter()->SetRange(new String("A1:B1"));

// Speichern Sie die Excel Datei
workbook->Save(outDir->StringAppend(new String("AutoFilter_out.xlsx")));
Das Bild der vom Beispielcode generierten Ausgabedatei

Das Bild der vom Beispielcode generierten Ausgabedatei

Datums-AutoFilter in Excel Dateien mit C++ hinzufügen

Excel Dateien können Daten enthalten, die auf Datumsangaben basieren. Möglicherweise befinden Sie sich in Szenarien, in denen Sie Daten basierend auf unterschiedlichen Daten filtern und analysieren müssen. Daher erweist sich in solchen Szenarien ein Datumsfilter als hilfreich. Im Folgenden sind die Schritte zum Hinzufügen des Datums-AutoFilters in Excel Dateien aufgeführt.

Der folgende Beispielcode demonstriert, wie Datums-AutoFilter in Excel Dateien mit C++ hinzugefügt werden.

// Quellverzeichnispfad.
StringPtr srcDir = new String("SourceDirectory\\");

// Verzeichnispfad ausgeben.
StringPtr outDir = new String("OutputDirectory\\");

// Laden Sie die Excel quelldatei
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("Book4.xlsx")));

// Greifen Sie auf das erste Arbeitsblatt in der Excel Datei zu
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);

// Rufen Sie die AddDateFilter Funktion auf, um den Filter anzuwenden
worksheet->GetIAutoFilter()->AddDateFilter(0, DateTimeGroupingType_Month, 2018, 1, 1, 0, 0, 0);

// Rufen Sie die Refresh Funktion auf, um das Arbeitsblatt zu aktualisieren
worksheet->GetIAutoFilter()->Refresh();

// Speichern Sie die Excel Datei
workbook->Save(outDir->StringAppend(new String("DateFilter_out.xlsx")));

Dynamischen Datums-AutoFilter in einer Excel Datei mit C++ hinzufügen

Es kann Fälle geben, in denen Sie einen allgemeineren Datumsfilter benötigen, z. B. den Monat unabhängig vom Jahr oder den Monat vor dem aktuellen Monat. Für solche Szenarien können Sie den dynamischen AutoFilter verwenden, um die Daten zu filtern. Im Folgenden sind die Schritte zum Filtern von Daten mit einem AutoFilter für dynamisches Datum aufgeführt.

Der folgende Beispielcode demonstriert, wie ein dynamischer Datums-AutoFilter in einer Excel Datei mit C++ hinzugefügt wird.

// Quellverzeichnispfad.
StringPtr srcDir = new String("SourceDirectory\\");

// Verzeichnispfad ausgeben.
StringPtr outDir = new String("OutputDirectory\\");

// Laden Sie die Excel quelldatei
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("Book4.xlsx")));

// Greifen Sie auf das erste Arbeitsblatt in der Excel Datei zu
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);

// Rufen Sie die DynamicFilter Funktion auf, um den Filter anzuwenden
worksheet->GetIAutoFilter()->DynamicFilter(0, DynamicFilterType_Februray);

// Rufen Sie die Refresh Funktion auf, um das Arbeitsblatt zu aktualisieren
worksheet->GetIAutoFilter()->Refresh();

// Speichern Sie die Excel Datei
workbook->Save(outDir->StringAppend(new String("DynamicDateAutoFilter_out.xlsx")));

Wenden Sie benutzerdefinierte AutoFilter in Excel Dateien mit C++ an

Falls Sie einen benutzerdefinierten AutoFilter anwenden möchten, ist Aspose.Cells für die C++-API genau das Richtige für Sie. Mithilfe der API können Sie basierend auf Ihren spezifischen Anforderungen einen benutzerdefinierten AutoFilter in Excel Dateien anwenden. Im Folgenden sind die Schritte zum Hinzufügen eines benutzerdefinierten AutoFilters in Excel Dateien aufgeführt.

Der folgende Beispielcode zeigt, wie Sie mithilfe von C++ einen benutzerdefinierten AutoFilter in Excel Dateien hinzufügen.

// Quellverzeichnispfad.
StringPtr srcDir = new String("SourceDirectory\\");

// Verzeichnispfad ausgeben.
StringPtr outDir = new String("OutputDirectory\\");

// Laden Sie die Excel quelldatei
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("sampleCountryNames.xlsx")));

// Greifen Sie auf das erste Arbeitsblatt in der Excel Datei zu
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);

// Rufen Sie die benutzerdefinierte Funktion auf, um den Filter anzuwenden
worksheet->GetIAutoFilter()->Custom(0, FilterOperatorType_Equal, new String("Brazil"));

// Rufen Sie die Refresh Funktion auf, um das Arbeitsblatt zu aktualisieren
worksheet->GetIAutoFilter()->Refresh();

// Speichern Sie die Excel Datei
workbook->Save(outDir->StringAppend(new String("CustomFilter_out.xlsx")));

AutoFilter aus Excel Dateien entfernen

In den vorherigen Abschnitten haben Sie gelernt, wie Sie verschiedene AutoFilter in Excel Dateien hinzufügen. Zusätzlich zum Hinzufügen von AutoFiltern können Sie sie auch mithilfe der Aspose.Cells for C++ API entfernen. Im Folgenden sind die Schritte zum Entfernen von AutoFiltern aus Excel Dateien aufgeführt.

Der folgende Beispielcode zeigt, wie AutoFilter mithilfe von C++ aus einer Excel Datei entfernt wird.

// Quellverzeichnispfad.
StringPtr srcDir = new String("SourceDirectory\\");

// Verzeichnispfad ausgeben.
StringPtr outDir = new String("OutputDirectory\\");

// Laden Sie die Excel quelldatei
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("SampleAutoFilter.xlsx")));

// Greifen Sie auf das erste Arbeitsblatt in der Excel Datei zu
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);

// AutoFilter entfernen
worksheet->RemoveAutoFilter();

// Speichern Sie die Excel Datei
workbook->Save(outDir->StringAppend(new String("RemoveAutoFilter_out.xlsx")));

Holen Sie sich eine kostenlose Lizenz

Sie können die API ohne Evaluierungseinschränkungen testen, indem Sie eine kostenlose temporäre Lizenz anfordern.

Fazit

In diesem Artikel haben Sie gelernt, wie Sie mit C++ AutoFilter zu Excel Dateien hinzufügen und daraus entfernen. Insbesondere haben Sie gelernt, wie Sie Standard, Datums, dynamisches Datums und benutzerdefinierte Autofilter hinzufügen. Sie haben auch gesehen, wie Sie AutoFilter mit Aspose.Cells für die C++-API entfernen. Die API bietet viele zusätzliche Funktionen für die Arbeit mit Excel Dateien. Sie können die API im Detail erkunden, indem Sie die offizielle Dokumentation besuchen. Bei Fragen können Sie uns gerne in unserem kostenlosen Support-Forum erreichen.

Siehe auch