Datafiltrering
Autofilterdata
Autofiltrering är det snabbaste sättet att välja endast de poster från arbetsbladet som du vill visa i en lista. Autofilterfunktionen gör det möjligt för användare att filtrera poster i en lista enligt ett angivet kriterium. Filtrera baserat på text, nummer eller datum.
Autofilter i Microsoft Excel
För att aktivera autofilterfunktionen i Microsoft Excel:
- Klicka på den rubrikraden i en arbetsbok.
- Från Data-menyn väljer du Filter och sedan Autofilter.
När du tillämpar ett autofilter på en arbetsbok visas filteromkopplare (svarta pilar) till höger om kolumnrubrikerna.
- Klicka på en filterpil för att se en lista över filteralternativ.
Några av autofilteralternativen är:
Alternativ | Beskrivning |
---|---|
All | Visa alla poster i listan en gång. |
Custom | Anpassa filterkriterier som innehåller/inte innehåller |
Filter by Color | Filter baserat på fyllningsfärg |
Date Filters | Filtrera rader baserat på olika kriterier på datum |
Number Filters | Olika typer av filter för nummer såsom jämförelse, medelvärden och Topp 10 osv. |
Text Filters | Olika filter som börjar med, slutar med, innehåller osv. |
Blanks/Non Blanks | Dessa filter kan implementeras genom textfilter Tom |
Användare filtrerar manuellt sina arbetsboksdata i Microsoft Excel med dessa alternativ. |
Autofilter med Aspose.Cells
Aspose.Cells tillhandahåller en klass, {0 som representerar en Excel-fil. {1}klassen innehåller en {2}som ger åtkomst till varje kalkylblad i Excel-filen.
En arbetsblad representeras av klassen Worksheet. Klassen Worksheet tillhandahåller ett brett utbud av egenskaper och metoder för att hantera arbetsblad. För att skapa en autofilter, använd AutoFilter-egenskapen för klassen Worksheet. Egenskapen AutoFilter är ett objekt av klassen AutoFilter, som tillhandahåller Range-egenskapen för att ange området för celler som utgör en rubrikrad. En autofilter tillämpas på området med celler som utgör rubrikraden.
I varje arbetsblad kan du endast ange ett filterområde. Detta är begränsat av Microsoft Excel. För anpassad datatfiltrering, använd metoden AutoFilter.Custom.
I det angivna 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 tillhandahåller flera alternativ för att använda olika typer av filter som färgfilter, datumfilter, nummerfilter, textfilter, blanka filter och icke-blanka filter.
Fyllfärg
Aspose.Cells tillhandahåller en funktion addFillColorFilter för att filtrera data baserat på fyllningsfärgsegenskapen hos cellerna. I det givna exemplet 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 hämtas 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 kodexempel demonstrerar detta filter med användning av funktionen addDateFilter. 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 alla celler med datum i januari oavsett år. I detta fall används funktionen DynamicFilter enligt det följande kodexemplet. Följande filer kan användas för att testa.
// 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"); |
Nummer
Anpassade filter kan tillämpas med hjälp av Aspose.Cells, t.ex. genom att välja celler med nummer mellan ett givet intervall. Följande exempel visar användningen av custom()-funktionen för att filtrera nummer. Exempelfilerna 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 särskild text, kan filter()-funktionen användas. I följande exempel innehåller mallfilen en lista med länder och raden ska väljas som innehåller ett specifikt land. Följande kod visar filtrering av text med hjälp av de bifogade exempelfilerna.
// 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"); |
Tomma
Om en kolumn innehåller text så att några celler är tomma, och filtrering krävs för att endast välja de rader där tomma celler finns, kan matchBlanks()-funktionen användas enligt nedan. Exempelfilerna 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"); |
Ej tomma
När celler med text ska filtreras, använd MatchNonBlanks-filterfunktionen enligt nedan. Exempelfilerna 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 för att filtrera rader som innehåller en specifik sträng. Denna funktion finns i Aspose.Cells och visas nedan genom att filtrera namnen i exempelfilen. Exempelfilerna 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 EjInnehåller
Excel tillhandahåller anpassade filter för att filtrera rader som inte innehåller en specifik sträng. Denna funktion finns 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 BörjaMed
Excel tillhandahåller anpassade filter för att filtrera rader som börjar med en specifik sträng. Denna funktion finns 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 SlutaMed
Excel tillhandahåller anpassade filter för att filtrera rader som slutar med en specifik sträng. Denna funktion finns 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"); |