Att filtrera information i Excel-kalkylblad är en viktig funktion. Det gör att du kan dölja irrelevant data och endast visa data som uppfyller specifika kriterier. Det kan finnas scenarier där filtrering av data kan visa sig vara till hjälp. Till exempel kan en organisation vilja filtrera bort lågpresterande produkter från försäljningsrapporten för att analysera och förbättra sina försäljningsstrategier. I den här artikeln kommer du att lära dig hur du lägger till eller tar bort AutoFilter i Excel-filer med C++.
- C++ API för att lägga till och ta bort AutoFilter i Excel-filer
- Använd AutoFilter i Excel-filer med C++
- Lägg till AutoFilter för datum i Excel-filer med C++
- Lägg till Dynamic Date AutoFilter i en Excel-fil med C++
- Använd anpassat autofilter i Excel-filer med C++
- Ta bort AutoFilter från Excel-filer
C++ API för att lägga till och ta bort AutoFilter i Excel-filer
Vi kommer att använda Aspose.Cells for C++ API för att lägga till och ta bort AutoFilter i Excel-filer. Det är ett inbyggt C++-bibliotek som låter dig skapa, läsa och ändra Excel-filer utan att behöva installera Microsoft Excel. Du kan antingen installera API:t genom NuGet eller ladda ner det direkt från avsnittet Nedladdningar.
PM> Install-Package Aspose.Cells.Cpp
Använd AutoFilter i Excel-filer med C++
Du kan använda AutoFilter på ett antal celler. Autofilter låter dig sortera och filtrera värden i det givna cellintervallet. Följande är stegen för att lägga till AutoFilter i Excel-filer.
- Ladda först Excel-filen med klassen IWorkbook.
- Hämta kalkylbladet där du vill använda AutoFilter med metoden IWorkbook->GetIWorksheets()->GetObjectByIndex (Aspose::Cells::Systems::Int32 index).
- Använd AutoFilter med hjälp av IWorksheet->GetIAutoFilter()->SetRange(intrusiveptrAspose::Cells::Systems::String värde) metod.
- Slutligen, spara Excel-filen med hjälp av IWorkbook->Spara (intrusiveptrAspose::Cells::Systems::String filnamn) metod.
Följande exempelkod visar hur du använder AutoFilter på ett cellintervall i en Excel-fil med C++.
// Källkatalogens sökväg.
StringPtr srcDir = new String("SourceDirectory\\");
// Utdatakatalogsökväg.
StringPtr outDir = new String("OutputDirectory\\");
// Ladda källfilen för Excel
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("Book3.xlsx")));
// Öppna det första kalkylbladet i Excel-filen
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);
// Skapa AutoFilter genom att ange cellområdet
worksheet->GetIAutoFilter()->SetRange(new String("A1:B1"));
// Spara Excel-filen
workbook->Save(outDir->StringAppend(new String("AutoFilter_out.xlsx")));
Lägg till AutoFilter för datum i Excel-filer med C++
Excel-filer kan innehålla data baserade på datum. Du kan hamna i scenarier där du behöver filtrera och analysera data baserat på olika datum. Därför kommer ett datumfilter att visa sig vara användbart i sådana scenarier. Följande är stegen för att lägga till datumautofilter i Excel-filer.
- Ladda först Excel-filen med klassen IWorkbook.
- Hämta kalkylbladet där du vill använda autofiltret med metoden IWorkbook->GetIWorksheets()->GetObjectByIndex (Aspose::Cells::Systems::Int32 index).
- Använd AutoFilter för datum med hjälp av IWorksheet->GetIAutoFilter()->AddDateFilter(Aspose::Cells::Systems::Int32 fieldIndex, Aspose::Cells::DateTimeGroupingType dateTimeGroupingType, Aspose::Cells:Inpose2s:Yr. ::Cells::Systems::Int32 month, Aspose::Cells::Systems::Int32 day, Aspose::Cells::Systems::Int32 hour, Aspose::Cells::Systems::Int32 minute, Aspose:: Cells::Systems::Int32 second) metod.
- För att uppdatera kalkylbladet, använd metoden IWorksheet->GetIAutoFilter()->Refresh().
- Slutligen, spara Excel-filen med hjälp av IWorkbook->Spara (intrusiveptrAspose::Cells::Systems::String filnamn) metod.
Följande exempelkod visar hur du lägger till datumautofilter i Excel-filer med C++.
// Källkatalogens sökväg.
StringPtr srcDir = new String("SourceDirectory\\");
// Utdatakatalogsökväg.
StringPtr outDir = new String("OutputDirectory\\");
// Ladda källfilen för Excel
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("Book4.xlsx")));
// Öppna det första kalkylbladet i Excel-filen
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);
// Anrop AddDateFilter-funktionen för att tillämpa filtret
worksheet->GetIAutoFilter()->AddDateFilter(0, DateTimeGroupingType_Month, 2018, 1, 1, 0, 0, 0);
// Anropa uppdateringsfunktionen för att uppdatera arbetsbladet
worksheet->GetIAutoFilter()->Refresh();
// Spara Excel-filen
workbook->Save(outDir->StringAppend(new String("DateFilter_out.xlsx")));
Lägg till Dynamic Date AutoFilter i en Excel-fil med C++
Det kan finnas fall där du behöver ett mer generiskt datumfilter, till exempel månaden oavsett år eller månaden före den aktuella månaden. För scenarier som detta kan du använda det dynamiska autofiltret för att filtrera data. Följande är stegen för att filtrera data med ett dynamiskt datumautofilter.
- Ladda först Excel-filen med klassen IWorkbook.
- Hämta kalkylbladet där du vill använda autofiltret med metoden IWorkbook->GetIWorksheets()->GetObjectByIndex (Aspose::Cells::Systems::Int32 index).
- Använd DynamicFilter med metoden IWorksheet->GetIAutoFilter()->DynamicFilter (Aspose::Cells::Systems::Int32 fieldIndex, Aspose::Cells::DynamicFilterType dynamicFilterType).
- För att uppdatera kalkylbladet, använd metoden IWorksheet->GetIAutoFilter()->Refresh().
- Slutligen, spara Excel-filen med hjälp av IWorkbook->Spara (intrusiveptrAspose::Cells::Systems::String filnamn) metod.
Följande exempelkod visar hur man lägger till ett dynamiskt datumautofilter i en Excel-fil med C++.
// Källkatalogens sökväg.
StringPtr srcDir = new String("SourceDirectory\\");
// Utdatakatalogsökväg.
StringPtr outDir = new String("OutputDirectory\\");
// Ladda källfilen för Excel
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("Book4.xlsx")));
// Öppna det första kalkylbladet i Excel-filen
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);
// Anrop DynamicFilter-funktionen för att tillämpa filtret
worksheet->GetIAutoFilter()->DynamicFilter(0, DynamicFilterType_Februray);
// Anrop uppdateringsfunktionen för att uppdatera arbetsbladet
worksheet->GetIAutoFilter()->Refresh();
// Spara Excel-filen
workbook->Save(outDir->StringAppend(new String("DynamicDateAutoFilter_out.xlsx")));
Använd anpassat autofilter i Excel-filer med C++
Om du vill använda ett anpassat AutoFilter, har Aspose.Cells for C++ API täckning. Med hjälp av API:et kan du använda ett anpassat autofilter i Excel-filer baserat på dina specifika krav. Följande är stegen för att lägga till anpassat autofilter i Excel-filer.
- Ladda först Excel-filen med klassen IWorkbook.
- Hämta kalkylbladet där du vill använda autofiltret med metoden IWorkbook->GetIWorksheets()->GetObjectByIndex (Aspose::Cells::Systems::Int32 index).
- Använd det anpassade autofiltret med IWorksheet->GetIAutoFilter()->Custom(Aspose::Cells::Systems::Int32 fieldIndex, Aspose::Cells::FilterOperatorType operatorType1, intrusiveptrAspose::Cells::Systems::Object kriterier1) metod.
- Anropa metoden IWorksheet->GetIAutoFilter()->Refresh() för att uppdatera kalkylbladet.
- Slutligen, spara Excel-filen med hjälp av IWorkbook->Spara (intrusiveptrAspose::Cells::Systems::String filnamn) metod.
Följande exempelkod visar hur du lägger till anpassat autofilter i Excel-filer med C++.
// Källkatalogens sökväg.
StringPtr srcDir = new String("SourceDirectory\\");
// Utdatakatalogsökväg.
StringPtr outDir = new String("OutputDirectory\\");
// Ladda källfilen för Excel
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("sampleCountryNames.xlsx")));
// Öppna det första kalkylbladet i Excel-filen
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);
// Ring Anpassad funktion för att tillämpa filtret
worksheet->GetIAutoFilter()->Custom(0, FilterOperatorType_Equal, new String("Brazil"));
// Anrop uppdateringsfunktionen för att uppdatera arbetsbladet
worksheet->GetIAutoFilter()->Refresh();
// Spara Excel-filen
workbook->Save(outDir->StringAppend(new String("CustomFilter_out.xlsx")));
Ta bort AutoFilter från Excel-filer
I de föregående avsnitten lärde du dig hur du lägger till olika autofilter i Excel-filer. Förutom att lägga till AutoFilters kan du också ta bort dem med Aspose.Cells for C++ API. Följande är stegen för att ta bort AutoFilters från Excel-filer.
- Ladda först Excel-filen med klassen IWorkbook.
- Hämta kalkylbladet där du vill ta bort AutoFilter med metoden IWorkbook->GetIWorksheets()->GetObjectByIndex (Aspose::Cells::Systems::Int32 index).
- Ta bort AutoFilter med metoden IWorksheet->RemoveAutoFilter().
- Slutligen, spara Excel-filen med hjälp av IWorkbook->Spara (intrusiveptrAspose::Cells::Systems::String filnamn) metod.
Följande exempelkod visar hur du tar bort AutoFilter från en Excel-fil med C++.
// Källkatalogens sökväg.
StringPtr srcDir = new String("SourceDirectory\\");
// Utdatakatalogsökväg.
StringPtr outDir = new String("OutputDirectory\\");
// Ladda källfilen för Excel
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("SampleAutoFilter.xlsx")));
// Öppna det första kalkylbladet i Excel-filen
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);
// Ta bort autofilter
worksheet->RemoveAutoFilter();
// Spara Excel-filen
workbook->Save(outDir->StringAppend(new String("RemoveAutoFilter_out.xlsx")));
Skaffa en gratis licens
Du kan prova API utan utvärderingsbegränsningar genom att begära en gratis tillfällig licens.
Slutsats
I den här artikeln har du lärt dig hur du lägger till och tar bort autofilter från Excel-filer med C++. Specifikt har du lärt dig hur du lägger till standard, datum, dynamiskt datum och anpassade autofilter. Du har också sett hur man tar bort AutoFilter med Aspose.Cells för C++ API. API:et tillhandahåller många ytterligare funktioner för att arbeta med Excel-filer. Du kan utforska API:et i detalj genom att besöka den officiella dokumentationen. Om du har några frågor är du välkommen att kontakta oss på vårt gratis supportforum.