Datafiltrering
Autofiltrera data
Autofiltrering är det snabbaste sättet att bara välja de objekt från kalkylbladet som du vill visa i en lista. Autofiltreringsfunktionen tillåter användare att filtrera objekt i en lista enligt ett bestämt kriterium. Filtrera baserat på text, siffror eller datum.
Autofilter i Microsoft Excel
Så här aktiverar du autofilterfunktionen i Microsoft Excel:
- Klicka på rubrikraden i ett kalkylblad.
- FrånDatamenyn, väljFiltreraoch dåAutoFilter.
När du använder ett autofilter på ett kalkylblad visas filteromkopplare (svarta pilar) till höger om kolumnrubrikerna.
- Klicka på en filterpil för att se en lista med filteralternativ.
Några av autofilteralternativen är:
alternativ | Beskrivning |
---|---|
Allt | Visa alla objekt i listan en gång. |
Beställnings | Anpassa filterkriterier som innehåller/innehåller inte |
Filtrera efter färg | Filter baserat på fylld färg |
Datumfilter | Filtrerar rader baserat på olika kriterier på datum |
Nummerfilter | Olika typer av filter på siffror som jämförelse, medelvärden och Top 10 etc. |
Textfilter | Olika filter som börjar med, slutar med, innehåller etc, |
Blanks/Non Blanks | Dessa filter kan implementeras genom Text Filter Blank |
Användare filtrerar sina kalkylbladsdata manuellt i Microsoft Excel med dessa alternativ. |
Autofilter med Aspose.Cells
Aspose.Cells tillhandahåller en klass,Arbetsboksom representerar en Excel-fil. DeArbetsbokklass innehåller enArbetsbladssamlingsom ger åtkomst till varje kalkylblad i Excel-filen.
Ett arbetsblad representeras avArbetsbladklass. DeArbetsbladklass tillhandahåller ett brett utbud av egenskaper och metoder för att hantera kalkylblad. För att skapa ett autofilter, användAutoFilteregendom avArbetsbladklass. DeAutoFilteregendom är ett föremål förAutoFilterklass, som gerRäckviddegenskap för att ange intervallet av celler som utgör en rubrikrad. Ett autofilter tillämpas på cellintervallet som är rubrikraden.
I varje kalkylblad kan du bara ange ett filterintervall. Detta begränsas av Microsoft Excel. För anpassad datafiltrering, användAutoFilter.Custom metod.
I exemplet nedan har vi skapat samma autofilter med Aspose.Cells som vi skapade med Microsoft Excel i avsnittet ovan.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java | |
// Instantiating a Workbook object | |
Workbook workbook = new Workbook("AFData.xls"); | |
// Accessing the first worksheet in the Excel file | |
Worksheet worksheet = workbook.getWorksheets().get(0); | |
// Creating AutoFilter by giving the cells range | |
AutoFilter autoFilter = worksheet.getAutoFilter(); | |
autoFilter.setRange("A1:B1"); | |
// Saving the modified Excel file | |
workbook.save("AFData_out.xls"); | |
// Print message | |
System.out.println("Process completed successfully"); |
Olika typer av filter
Aspose.Cells ger flera alternativ för att använda olika typer av filter som färgfilter, datumfilter, nummerfilter, textfilter, tomma filter och inga tomma filter.
Fyllnadsfärg
Aspose.Cells tillhandahåller en funktion[addFillColorFilter](https://reference.aspose.com/cells/java/com.aspose.cells/autofilter#addFillColorFilter(int,%20int,%20com.aspose.cells.CellsColor,%20com.aspose.cells.CellsColor)för att filtrera data baserat på fyllnadsfärgsegenskapen för cellerna. I exemplet nedan används en mallfil med olika fyllningsfärger i den första kolumnen på arket för att testa färgfiltreringsfunktionen. Följande filer kan laddas ner för att kontrollera funktionaliteten.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java | |
// Instantiating a Workbook object | |
// Opening the Excel file through the file stream | |
Workbook workbook = new Workbook("ColouredCells.xlsx"); | |
// Instantiating a CellsColor object for foreground color | |
CellsColor clrForeground = workbook.createCellsColor(); | |
clrForeground.setColor(Color.getRed()); | |
// Instantiating a CellsColor object for background color | |
CellsColor clrBackground = workbook.createCellsColor(); | |
clrBackground.setColor(Color.getWhite()); | |
// Accessing the first worksheet in the Excel file | |
Worksheet worksheet = workbook.getWorksheets().get(0); | |
// Call AddFillColorFilter function to apply the filter | |
worksheet.getAutoFilter().addFillColorFilter(0, BackgroundType.SOLID, clrForeground, clrBackground); | |
// Call refresh function to update the worksheet | |
worksheet.getAutoFilter().refresh(); | |
// Saving the modified Excel file | |
workbook.save("FilteredColouredCells.xlsx"); | |
// Print message | |
System.out.println("Process completed successfully"); |
Datum
Olika typer av datumfilter kan implementeras som att filtrera alla rader med datum i januari 2018. Följande exempelkod visar detta filter medaddDateFilter funktion. Följande filer kan användas för att testa denna funktionalitet.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java | |
// Instantiating a Workbook object | |
// Opening the Excel file through the file stream | |
Workbook workbook = new Workbook("Date.xlsx"); | |
// Accessing the first worksheet in the Excel file | |
Worksheet worksheet = workbook.getWorksheets().get(0); | |
// Call AddDateFilter function to apply the filter | |
worksheet.getAutoFilter().addDateFilter(0, DateTimeGroupingType.MONTH, 2018, 1, 0, 0, 0, 0); | |
// Call refresh function to update the worksheet | |
worksheet.getAutoFilter().refresh(); | |
// Saving the modified Excel file | |
workbook.save("FilteredDate.xlsx"); | |
// Print message | |
System.out.println("Process completed successfully"); |
Dynamiskt datum
Ibland krävs dynamiska filter baserat på ett datum som att alla celler har datum i januari, oavsett år. I detta fall,DynamicFilter-funktionen används enligt följande exempelkod. Följande filer kan användas för testning.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java | |
// Instantiating a Workbook object | |
// Opening the Excel file through the file stream | |
Workbook workbook = new Workbook("Date.xlsx"); | |
// Accessing the first worksheet in the Excel file | |
Worksheet worksheet = workbook.getWorksheets().get(0); | |
// Call DynamicFilter function to apply the filter | |
worksheet.getAutoFilter().dynamicFilter(0, DynamicFilterType.JANUARY); | |
// Call refresh function to update the worksheet | |
worksheet.getAutoFilter().refresh(); | |
// Saving the modified Excel file | |
workbook.save("FilteredDynamicDate.xlsx"); |
siffra
Anpassade filter kan tillämpas med Aspose.Cells som att markera celler med nummer mellan ett givet intervall. Följande exempel visar användningen avbeställnings() funktion för att filtrera siffror. Exempelfiler kan laddas ner från följande länkar.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java | |
// Instantiating a Workbook object | |
// Opening the Excel file through the file stream | |
Workbook workbook = new Workbook("Date.xlsx"); | |
// Accessing the first worksheet in the Excel file | |
Worksheet worksheet = workbook.getWorksheets().get(0); | |
// Call DynamicFilter function to apply the filter | |
worksheet.getAutoFilter().dynamicFilter(0, DynamicFilterType.JANUARY); | |
// Call refresh function to update the worksheet | |
worksheet.getAutoFilter().refresh(); | |
// Saving the modified Excel file | |
workbook.save("FilteredDynamicDate.xlsx"); |
Text
Om en kolumn innehåller text och celler ska väljas som innehåller viss text,filtrera() funktion kan användas. I följande exempel innehåller mallfilen en lista över länder och en rad ska väljas med ett visst landsnamn. Följande kod visar filtrering av text med hjälp av exempelfilerna nedan.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java | |
// Instantiating a Workbook object | |
// Opening the Excel file through the file stream | |
Workbook workbook = new Workbook("Text.xlsx"); | |
// Accessing the first worksheet in the Excel file | |
Worksheet worksheet = workbook.getWorksheets().get(0); | |
// Call Filter function to apply the filter | |
worksheet.getAutoFilter().filter(0, "Angola"); | |
// Call refresh function to update the worksheet | |
worksheet.getAutoFilter().refresh(); | |
// Saving the modified Excel file | |
workbook.save("FilteredText.xlsx"); |
Blanks
Om en kolumn innehåller text så att få celler är tomma, och filter krävs för att endast markera de rader där tomma celler finns,matchBlanks()-funktionen kan användas som visas nedan. Exempelfiler kan laddas ner från följande länkar.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java | |
// Instantiating a Workbook object | |
// Opening the Excel file through the file stream | |
Workbook workbook = new Workbook("Blank.xlsx"); | |
// Accessing the first worksheet in the Excel file | |
Worksheet worksheet = workbook.getWorksheets().get(0); | |
// Call matchBlanks function to apply the filter | |
worksheet.getAutoFilter().matchBlanks(0); | |
// Call refresh function to update the worksheet | |
worksheet.getAutoFilter().refresh(); | |
// Saving the modified Excel file | |
workbook.save("FilteredBlank.xlsx"); |
Icke Blanks
När celler med någon text ska filtreras, användMatchNonBlanks filterfunktion som visas nedan. Exempelfiler kan laddas ner från följande länkar.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java | |
// Instantiating a Workbook object | |
// Opening the Excel file through the file stream | |
Workbook workbook = new Workbook("Blank.xlsx"); | |
// Accessing the first worksheet in the Excel file | |
Worksheet worksheet = workbook.getWorksheets().get(0); | |
// Call matchBlanks function to apply the filter | |
worksheet.getAutoFilter().matchBlanks(0); | |
// Call refresh function to update the worksheet | |
worksheet.getAutoFilter().refresh(); | |
// Saving the modified Excel file | |
workbook.save("FilteredBlank.xlsx"); |
Anpassat filter med Innehåller
Excel tillhandahåller anpassade filter som filterrader som innehåller en viss sträng. Den här funktionen är tillgänglig i Aspose.Cells och visas nedan genom att filtrera namnen i exempelfilen. Exempelfiler kan laddas ner från följande länkar.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java | |
// Instantiating a Workbook object containing sample data | |
Workbook workbook = new Workbook("sourseSampleCountryNames.xlsx"); | |
// Accessing the first worksheet in the Excel file | |
Worksheet worksheet = workbook.getWorksheets().get(0); | |
// Creating AutoFilter by giving the cells range | |
worksheet.getAutoFilter().setRange("A1:A18"); | |
// Initialize filter for rows containing string "Ba" | |
worksheet.getAutoFilter().custom(0, FilterOperatorType.CONTAINS, "Ba"); | |
//Refresh the filter to show/hide filtered rows | |
worksheet.getAutoFilter().refresh(); | |
// Saving the modified Excel file | |
workbook.save("outSourseSampleCountryNames.xlsx"); |
Anpassat filter med NotContains
Excel tillhandahåller anpassade filter som filterrader som inte innehåller någon specifik sträng. Den här funktionen är tillgänglig i Aspose.Cells och visas nedan genom att filtrera namnen i exempelfilen nedan.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java | |
// Instantiating a Workbook object containing sample data | |
Workbook workbook = new Workbook("sourseSampleCountryNames.xlsx"); | |
// Accessing the first worksheet in the Excel file | |
Worksheet worksheet = workbook.getWorksheets().get(0); | |
// Creating AutoFilter by giving the cells range | |
worksheet.getAutoFilter().setRange("A1:A18"); | |
// Initialize filter for rows containing string "Ba" | |
worksheet.getAutoFilter().custom(0, FilterOperatorType.NOT_CONTAINS, "Ba"); | |
//Refresh the filter to show/hide filtered rows | |
worksheet.getAutoFilter().refresh(); | |
// Saving the modified Excel file | |
workbook.save("outSourseSampleCountryNames.xlsx"); |
Anpassat filter med BeginsWith
Excel tillhandahåller anpassade filter som filterrader som börjar med en viss sträng. Den här funktionen är tillgänglig i Aspose.Cells och visas nedan genom att filtrera namnen i exempelfilen nedan.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java | |
// Instantiating a Workbook object containing sample data | |
Workbook workbook = new Workbook(sourceDir + "sourseSampleCountryNames.xlsx"); | |
// Accessing the first worksheet in the Excel file | |
Worksheet worksheet = workbook.Worksheets[0]; | |
// Creating AutoFilter by giving the cells range | |
worksheet.AutoFilter.Range = "A1:A18"; | |
// Initialize filter for rows starting with string "Ba" | |
worksheet.AutoFilter.Custom(0, FilterOperatorType.BeginsWith, "Ba"); | |
//Refresh the filter to show/hide filtered rows | |
worksheet.AutoFilter.Refresh(); | |
// Saving the modified Excel file | |
workbook.Save(outputDir + "outSourseSampleCountryNames.xlsx"); |
Anpassat filter med EndsWith
Excel tillhandahåller anpassade filter som filterrader som slutar med en viss sträng. Den här funktionen är tillgänglig i Aspose.Cells och visas nedan genom att filtrera namnen i exempelfilen nedan.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java | |
// Instantiating a Workbook object containing sample data | |
Workbook workbook = new Workbook(srcDir + "sourseSampleCountryNames.xlsx"); | |
// Accessing the first worksheet in the Excel file | |
Worksheet worksheet = workbook.getWorksheets().get(0); | |
// Creating AutoFilter by giving the cells range | |
worksheet.getAutoFilter().setRange("A1:A18"); | |
// Initialize filter for rows starting with string "Ba" | |
worksheet.getAutoFilter().custom(0, FilterOperatorType.ENDS_WITH, "ia"); | |
//Refresh the filter to show/hide filtered rows | |
worksheet.getAutoFilter().refresh(); | |
// Saving the modified Excel file | |
workbook.save(outDir + "outSourseSampleCountryNames.xlsx"); |