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 menyn Data, välj 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 på nummer som jämförelse, medeltal och Topp 10 etc. |
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 for Node.js via C++
Aspose.Cells tillhandahåller en klass, Workbook, som representerar en Excel-fil. Workbook-klassen innehåller en Worksheets-samling som ger åtkomst till varje arbetsbok i Excel-filen.
En arbetsbok representeras av klassen Worksheet. Worksheet-klassen tillhandahåller ett brett utbud av egenskaper och metoder för att hantera arbetsböcker. För att skapa ett autofilter, använd AutoFilter-egenskapen i Worksheet-klassen. AutoFilter-egenskapen är en instans av klassen AutoFilter, som ger Range-egenskapen för att ange den rad med celler som utgör en rubrikrad. Ett autofilter appliceras på cellområdet som är rubrikraden.
I varje arbetsbok kan du endast ange ett filterområde. Detta är begränsat av Microsoft Excel. För anpassad datafiltrering, använd AutoFilter.Custom-metoden.
I exemplet nedan har vi skapat samma autofilter med Aspose.Cells for Node.js via C++ som vi gjorde med Microsoft Excel i ovanstående avsnitt.
const path = require("path"); | |
const AsposeCells = require("aspose.cells.node"); | |
// The path to the documents directory. | |
const dataDir = path.join(__dirname, "data"); | |
// Instantiating a Workbook object | |
// Opening the Excel file through the file stream | |
const workbook = new AsposeCells.Workbook(dataDir + "book1.xls"); | |
// Accessing the first worksheet in the Excel file | |
const worksheet = workbook.getWorksheets().get(0); | |
// Creating AutoFilter by giving the cells range of the heading row | |
worksheet.getAutoFilter().setRange("A1:B1"); | |
// Saving the modified Excel file | |
workbook.save(dataDir + "output.out.xls"); |
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å fyllfärgsegenskapen hos cellerna. I det angivna exemplet nedan används en mallfil med olika fyllfärger i den första kolumnen i arket för att testa färgfiltreringsfunktionen. Exempelfiler kan laddas ner från följande länkar.
const AsposeCells = require("aspose.cells.node"); | |
const path = require("path"); | |
// The path to the documents directory. | |
const dataDir = path.join(__dirname, "data"); | |
// Source directory | |
const sourceDir = dataDir; | |
// Output directory | |
const outputDir = dataDir; | |
// Instantiating a Workbook object | |
// Opening the Excel file through the file stream | |
let workbook = new AsposeCells.Workbook(path.join(sourceDir, "ColouredCells.xlsx")); | |
// Instantiating a CellsColor object for foreground color | |
let clrForeground = workbook.createCellsColor(); | |
clrForeground.color = AsposeCells.Color.fromArgb(255, 0, 0); // Red color | |
// Instantiating a CellsColor object for background color | |
let clrBackground = workbook.createCellsColor(); | |
clrBackground.color = AsposeCells.Color.fromArgb(255, 255, 255); // White color | |
// Accessing the first worksheet in the Excel file | |
let worksheet = workbook.getWorksheets().get(0); | |
// Call AddFillColorFilter function to apply the filter | |
worksheet.getAutoFilter().addFillColorFilter(0, AsposeCells.BackgroundType.Solid, clrForeground, clrBackground); | |
// Call refresh function to update the worksheet | |
worksheet.getAutoFilter().refresh(); | |
// Saving the modified Excel file | |
workbook.save(path.join(outputDir, "FilteredColouredCells.xlsx")); |
Datum
Olika typer av datumfilter kan implementeras, till exempel filtrering av alla rader med datum i januari 2018. Följande kodexempel demonstrerar detta filter med funktionen AddDateFilter. Exempel på filer finns nedan.
const path = require("path"); | |
const AsposeCells = require("aspose.cells.node"); | |
// The path to the documents directory. | |
const sourceDir = path.join(__dirname, "data"); | |
const outputDir = path.join(__dirname, "output"); | |
// Instantiating a Workbook object | |
// Opening the Excel file through the file stream | |
const workbook = new AsposeCells.Workbook(path.join(sourceDir, "Date.xlsx")); | |
// Accessing the first worksheet in the Excel file | |
const worksheet = workbook.getWorksheets().get(0); | |
// Call AddDateFilter function to apply the filter | |
worksheet.getAutoFilter().addDateFilter(0, AsposeCells.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(path.join(outputDir, "FilteredDate.xlsx")); |
Dynamiskt datum
Ibland krävs dynamiska filter baserat på datum som alla celler med datum i januari oavsett år. I detta fall används DynamicFilter-funktionen enligt det följande exempelkodet. Exempelfiler ges nedan.
const path = require("path"); | |
const AsposeCells = require("aspose.cells.node"); | |
// The path to the documents directory. | |
const sourceDir = path.join(__dirname, "data/"); | |
const outputDir = path.join(__dirname, "output/"); | |
// Instantiating a Workbook object | |
// Opening the Excel file through the file stream | |
const workbook = new AsposeCells.Workbook(`${sourceDir}Date.xlsx`); | |
// Accessing the first worksheet in the Excel file | |
const worksheet = workbook.getWorksheets().get(0); | |
// Call DynamicFilter function to apply the filter | |
worksheet.getAutoFilter().dynamic_Filter(0, AsposeCells.DynamicFilterType.January); | |
// Call refresh function to update the worksheet | |
worksheet.getAutoFilter().refresh(); | |
// Saving the modified Excel file | |
workbook.save(`${outputDir}FilteredDynamicDate.xlsx`); |
Nummer
Anpassade filter kan appliceras med Aspose.Cells som att välja celler med nummer mellan ett givet intervall. Följande exempel demonstrerar användningen av Custom-funktionen för att filtrera nummer. Exempelfiler ges nedan.
const path = require("path"); | |
const AsposeCells = require("aspose.cells.node"); | |
// The path to the documents directory. | |
const sourceDir = path.join(__dirname, "data"); | |
const outputDir = path.join(__dirname, "data"); | |
// Instantiating a Workbook object | |
// Opening the Excel file through the file stream | |
const workbook = new AsposeCells.Workbook(path.join(sourceDir, "Number.xlsx")); | |
// Accessing the first worksheet in the Excel file | |
const worksheet = workbook.getWorksheets().get(0); | |
// Call Custom function to apply the filter | |
worksheet.getAutoFilter().custom(0, AsposeCells.FilterOperatorType.GreaterOrEqual, 5, true, AsposeCells.FilterOperatorType.LessOrEqual, 10); | |
// Call refresh function to update the worksheet | |
worksheet.getAutoFilter().refresh(); | |
// Saving the modified Excel file | |
workbook.save(path.join(outputDir, "FilteredNumber.xlsx")); |
Text
Om en kolumn innehåller text och cellerna ska väljas baserat på ett visst textord kan funktionen Filter() användas. I följande exempel innehåller mallfilen en lista av länder och raden ska väljas som innehåller ett visst land. Följande kod demonstrerar filtrering av text. Exempel på filer finns nedan.
const path = require("path"); | |
const AsposeCells = require("aspose.cells.node"); | |
// The path to the documents directory. | |
const sourceDir = path.join(__dirname, "data"); | |
const outputDir = path.join(__dirname, "output"); | |
// Instantiating a Workbook object | |
// Opening the Excel file through the file stream | |
const workbook = new AsposeCells.Workbook(path.join(sourceDir, "Text.xlsx")); | |
// Accessing the first worksheet in the Excel file | |
const 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(path.join(outputDir, "FilteredText.xlsx")); |
Tomma
Om en kolumn innehåller text så att några celler är tomma och det krävs ett filter för att välja de rader där tomma celler finns, kan MatchBlanks-funktionen användas enligt nedan demonstrerat. Exempelfiler ges nedan.
const path = require("path"); | |
const AsposeCells = require("aspose.cells.node"); | |
// The path to the documents directory. | |
const dataDir = path.join(__dirname, "data"); | |
// Source directory | |
const sourceDir = path.join(dataDir, "source/"); | |
// Output directory | |
const outputDir = path.join(dataDir, "output/"); | |
// Instantiating a Workbook object | |
// Opening the Excel file through the file stream | |
const workbook = new AsposeCells.Workbook(sourceDir + "Blank.xlsx"); | |
// Accessing the first worksheet in the Excel file | |
const 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(outputDir + "FilteredBlank.xlsx"); |
Ej tomma
När celler med text ska filtreras, använd MatchNonBlanks filterfunktion enligt nedan. Exempelfiler ges nedan.
const path = require("path"); | |
const AsposeCells = require("aspose.cells.node"); | |
// The path to the documents directory. | |
const dataDir = path.join(__dirname, "data"); | |
// Source directory | |
const sourceDir = dataDir + "/"; // Assuming sourceDir is stored here | |
// Output directory | |
const outputDir = dataDir + "/"; // Assuming outputDir is stored here | |
// Instantiating a Workbook object | |
// Opening the Excel file through the file stream | |
const workbook = new AsposeCells.Workbook(sourceDir + "Blank.xlsx"); | |
// Accessing the first worksheet in the Excel file | |
const worksheet = workbook.getWorksheets().get(0); | |
// Call MatchNonBlanks function to apply the filter | |
worksheet.getAutoFilter().matchNonBlanks(0); | |
// Call refresh function to update the worksheet | |
worksheet.getAutoFilter().refresh(); | |
// Saving the modified Excel file | |
workbook.save(outputDir + "FilteredNonBlank.xlsx"); |
Anpassat filter med Innehåller
Excel erbjuder anpassade filter som filtrerar rader som innehåller en specifik sträng. Denna funktion är tillgänglig i Aspose.Cells och demonstreras nedan genom att filtrera namnen i provfilen. Exempelfiler ges nedan.
const AsposeCells = require("aspose.cells.node"); | |
const path = require("path"); | |
// The path to the documents directory. | |
const dataDir = path.join(__dirname, "data"); | |
// Instantiating a Workbook object containing sample data | |
let workbook = new AsposeCells.Workbook(path.join(dataDir, "sourseSampleCountryNames.xlsx")); | |
// Accessing the first worksheet in the Excel file | |
let 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, AsposeCells.FilterOperatorType.Contains, "Ba"); | |
// Refresh the filter to show/hide filtered rows | |
worksheet.getAutoFilter().refresh(); | |
// Saving the modified Excel file | |
workbook.save(path.join(dataDir, "outSourseSampleCountryNames.xlsx")); |
Anpassat filter med EjInnehåller
Excel erbjuder anpassade filter, som filterrader som inte innehåller ett visst sträng. Denna funktion är tillgänglig i Aspose.Cells och demonstreras nedan genom att filtrera namnen i sample-filen som finns nedan.
const AsposeCells = require("aspose.cells.node"); | |
const path = require("path"); | |
// The path to the documents directory. | |
const dataDir = path.join(__dirname, "data"); | |
// Instantiating a Workbook object containing sample data | |
const workbook = new AsposeCells.Workbook(path.join(dataDir, "sourseSampleCountryNames.xlsx")); | |
// Accessing the first worksheet in the Excel file | |
const 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, AsposeCells.FilterOperatorType.NotContains, "Be"); | |
// Refresh the filter to show/hide filtered rows | |
worksheet.getAutoFilter().refresh(); | |
// Saving the modified Excel file | |
workbook.save(path.join(dataDir, "outSourseSampleCountryNames.xlsx")); |
Anpassat filter med BörjaMed
Excel erbjuder anpassade filter, som filterrader som börjar med en viss sträng. Denna funktion är tillgänglig i Aspose.Cells och demonstreras nedan genom att filtrera namnen i sample-filen som finns nedan.
const AsposeCells = require("aspose.cells.node"); | |
const path = require("path"); | |
// The path to the documents directory. | |
const sourceDir = path.join(__dirname, "data/"); | |
const outputDir = path.join(__dirname, "output/"); | |
// Instantiating a Workbook object containing sample data | |
let workbook = new AsposeCells.Workbook(sourceDir + "sourseSampleCountryNames.xlsx"); | |
// Accessing the first worksheet in the Excel file | |
let 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, AsposeCells.FilterOperatorType.BeginsWith, "Ba"); | |
// Refresh the filter to show/hide filtered rows | |
worksheet.getAutoFilter().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.
const AsposeCells = require("aspose.cells.node"); | |
const path = require("path"); | |
// The path to the documents directory. | |
const sourceDir = path.join(__dirname, "data/"); | |
const outputDir = path.join(__dirname, "output/"); | |
// Instantiating a Workbook object containing sample data | |
const workbook = new AsposeCells.Workbook(sourceDir + "sourseSampleCountryNames.xlsx"); | |
// Accessing the first worksheet in the Excel file | |
const worksheet = workbook.getWorksheets().get(0); | |
// Creating AutoFilter by giving the cells range | |
worksheet.getAutoFilter().setRange("A1:A18"); | |
// Initialize filter for rows end with string "ia" | |
worksheet.getAutoFilter().custom(0, AsposeCells.FilterOperatorType.BeginsWith, "ia"); | |
// Refresh the filter to show/hide filtered rows | |
worksheet.getAutoFilter().refresh(); | |
// Saving the modified Excel file | |
workbook.save(outputDir + "outSourseSampleCountryNames.xlsx"); |