Filtrage des données

Filtrer automatiquement les données

Le filtrage automatique est le moyen le plus rapide de sélectionner uniquement les éléments de la feuille de calcul que vous souhaitez afficher dans une liste. La fonction de filtrage automatique permet aux utilisateurs de filtrer les éléments d’une liste selon un critère défini. Filtrez par texte, chiffres ou dates.

Filtrer automatiquement dans Microsoft Excel

Pour activer la fonction de filtrage automatique dans Microsoft Excel :

  1. Cliquez sur la ligne d’en-tête dans une feuille de calcul.
  2. Dans le menu Données, sélectionnez Filtrer puis Filtrage automatique.

Lorsque vous appliquez un filtrage automatique à une feuille de calcul, des interrupteurs de filtre (flèches noires) apparaissent à droite des en-têtes de colonne.

  1. Cliquez sur une flèche de filtre pour voir une liste d’options de filtre.

Certaines des options de filtrage automatique sont :

Options Description
All Afficher tous les éléments de la liste une fois.
Custom Personnaliser les critères de filtre comme contient/ne contient pas
Filter by Color Filtres basés sur la couleur remplie
Date Filters Filtrer les lignes en fonction de différents critères de date
Number Filters Différents types de filtres sur les nombres tels que la comparaison, les moyennes et les Top 10, etc.
Text Filters Différents filtres comme commence par, se termine par, contient, etc.
Blanks/Non Blanks Ces filtres peuvent être mis en œuvre via Filtre de texte vide

Les utilisateurs filtrent manuellement les données de leur feuille de calcul dans Microsoft Excel en utilisant ces options.

Filtre automatique avec Aspose.Cells for Node.js via C++

Aspose.Cells fournit une classe, Workbook, qui représente un fichier Excel. La classe Workbook contient une collection Worksheets qui permet d’accéder à chaque feuille de calcul dans le fichier Excel.

Une feuille de calcul est représentée par la classe Worksheet. La classe Worksheet fournit une large gamme de propriétés et de méthodes pour gérer les feuilles de calcul. Pour créer un filtre automatique, utilisez la propriété AutoFilter de la classe Worksheet. La propriété AutoFilter est un objet de la classe AutoFilter, qui fournit la propriété Plage pour spécifier la plage de cellules qui compose une ligne d’en-tête. Un filtre automatique est appliqué à la plage de cellules qui constitue la ligne d’en-tête.

Dans chaque feuille de calcul, vous ne pouvez spécifier qu’une seule plage de filtre. Cela est limité par Microsoft Excel. Pour un filtrage personnalisé des données, utilisez la méthode AutoFilter.Custom.

Dans l’exemple ci-dessous, nous avons créé le même AutoFilter en utilisant Aspose.Cells for Node.js via C++ comme nous l’avons fait avec Microsoft Excel dans la section ci-dessus.

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");

Différents types de filtres

Aspose.Cells propose plusieurs options pour appliquer différents types de filtres comme le filtre par couleur, le filtre par date, le filtre par nombre, le filtre par texte, les filtres vides et non vides.

Couleur de remplissage

Aspose.Cells propose une fonction AddFillColorFilter pour filtrer les données en fonction de la propriété de couleur de remplissage des cellules. Dans l’exemple ci-dessous, un fichier modèle contenant différentes couleurs de remplissage dans la première colonne de la feuille est utilisé pour tester la fonction de filtrage par couleur. Des fichiers d’exemple peuvent être téléchargés aux liens suivants.

  1. ColouredCells.xlsx
  2. FilteredColouredCells.xlsx
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"));
Date

Différents types de filtres par date peuvent être implémentés, comme filtrer toutes les lignes contenant des dates en janvier 2018. Le code d’exemple ci-dessous démontre ce filtre en utilisant la fonction AddDateFilter. Des fichiers d’exemple sont fournis ci-dessous.

  1. Date.xlsx
  2. FilteredDate.xlsx
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"));
Date dynamique

Parfois, des filtres dynamiques sont nécessaires en fonction de la date comme toutes les cellules ayant des dates en janvier, indépendamment de l’année. Dans ce cas, la fonction DynamicFilter est utilisée comme donné dans le code d’exemple suivant. Les fichiers d’exemple sont donnés ci-dessous.

  1. Date.xlsx
  2. FilteredDynamicDate.xlsx
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`);
Nombre

Des filtres personnalisés peuvent être appliqués en utilisant Aspose.Cells, comme la sélection de cellules ayant un nombre entre une plage donnée. L’exemple suivant démontre l’utilisation de la fonction Custom() pour filtrer les chiffres. Des fichiers d’exemple sont donnés ci-dessous.

  1. Number.xlsx
  2. FilteredNumber.xlsx
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

Si une colonne contient du texte et que vous souhaitez sélectionner les cellules contenant un texte particulier, la fonction Filter() peut être utilisée. Dans l’exemple suivant, le fichier modèle contient une liste de pays et la ligne doit être sélectionnée si elle contient un nom de pays particulier. Le code suivant montre comment filtrer du texte. Des fichiers d’exemple sont fournis ci-dessous.

  1. Text.xlsx
  2. FilteredText.xlsx
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"));
Vides

Si une colonne contient du texte et que certaines cellules sont vides, et qu’un filtre est nécessaire pour sélectionner uniquement les lignes où des cellules vides sont présentes, la fonction MatchBlanks() peut être utilisée comme démontré ci-dessous. Des fichiers d’exemple sont donnés ci-dessous.

  1. Blank.xlsx
  2. FilteredBlank.xlsx
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");
Non vides

Lorsque des cellules contenant du texte doivent être filtrées, utilisez la fonction de filtre MatchNonBlanks comme démontré ci-dessous. Des fichiers d’exemple sont donnés ci-dessous.

  1. Blank.xlsx
  2. FilteredNonBlank.xlsx
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");
Filtre personnalisé avec Contient

Excel propose des filtres personnalisés comme filtrer les lignes qui contiennent une chaîne spécifique. Cette fonctionnalité est disponible dans Aspose.Cells et démontrée ci-dessous en filtrant les noms dans le fichier d’exemple. Des fichiers d’exemple sont donnés ci-dessous.

  1. sourseSampleCountryNames.xlsx
  2. outSourseSampleCountryNames.xlsx.
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"));
Filtre personnalisé avec NeContientPas

Excel propose des filtres personnalisés comme le filtre pour des lignes ne contenant pas une chaîne spécifique. cette fonctionnalité est disponible dans Aspose.Cells et est illustrée ci-dessous en filtrant les noms dans le fichier d’exemple fourni ci-dessous.

  1. sourseSampleCountryNames.xlsx.
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"));
Filtre personnalisé avec Commence par

Excel fournit des filtres personnalisés, comme celui pour les lignes commençant par une chaîne spécifique. Cette fonctionnalité est disponible dans Aspose.Cells et est illustrée ci-dessous en filtrant les noms dans le fichier d’exemple fourni ci-dessous.

  1. sourseSampleCountryNames.xlsx.
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");
Filtre personnalisé avec Se termine par

Excel propose des filtres personnalisés comme filtrer les lignes qui se terminent par une chaîne spécifique. Cette fonctionnalité est disponible dans Aspose.Cells et est démontrée ci-dessous en filtrant les noms dans le fichier d’exemple donné ci-dessous.

  1. sourseSampleCountryNames.xlsx.
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");

Sujets avancés