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

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.

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")));
Bilden av utdatafilen som genereras av exempelkoden

Bilden av utdatafilen som genereras av exempelkoden

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.

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.

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.

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.

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.

Se även