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 :
- Cliquez sur la ligne d’en-tête dans une feuille de calcul.
- 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.
- 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.
Filtrage automatique avec Aspose.Cells
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 filtre automatique en utilisant Aspose.Cells que celui que nous avons créé en utilisant Microsoft Excel dans la section ci-dessus.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET | |
// The path to the documents directory. | |
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); | |
// Instantiating a Workbook object | |
// Opening the Excel file through the file stream | |
Workbook workbook = new Workbook(dataDir + "book1.xls"); | |
// Accessing the first worksheet in the Excel file | |
Worksheet worksheet = workbook.Worksheets[0]; | |
// Creating AutoFilter by giving the cells range of the heading row | |
worksheet.AutoFilter.Range = "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.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET | |
// The path to the documents directory. | |
//Source directory | |
string sourceDir = RunExamples.Get_SourceDirectory(); | |
//Output directory | |
string outputDir = RunExamples.Get_OutputDirectory(); | |
// Instantiating a Workbook object | |
// Opening the Excel file through the file stream | |
Workbook workbook = new Workbook(sourceDir + "ColouredCells.xlsx"); | |
// Instantiating a CellsColor object for foreground color | |
CellsColor clrForeground = workbook.CreateCellsColor(); | |
clrForeground.Color = Color.Red; | |
// Instantiating a CellsColor object for background color | |
CellsColor clrBackground = workbook.CreateCellsColor(); | |
clrBackground.Color = Color.White; | |
// Accessing the first worksheet in the Excel file | |
Worksheet worksheet = workbook.Worksheets[0]; | |
// Call AddFillColorFilter function to apply the filter | |
worksheet.AutoFilter.AddFillColorFilter(0, BackgroundType.Solid, clrForeground, clrBackground); | |
// Call refresh function to update the worksheet | |
worksheet.AutoFilter.Refresh(); | |
// Saving the modified Excel file | |
workbook.Save(outputDir + "FilteredColouredCells.xlsx"); |
Date
Différents types de filtres de date peuvent être implémentés comme filtrer toutes les lignes ayant des dates en janvier 2018. Le code d’exemple suivant démontre ce filtre en utilisant la fonction AddDateFilter. Les fichiers d’exemple sont donnés ci-dessous.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET | |
// The path to the documents directory. | |
//Source directory | |
string sourceDir = RunExamples.Get_SourceDirectory(); | |
//Output directory | |
string outputDir = RunExamples.Get_OutputDirectory(); | |
// Instantiating a Workbook object | |
// Opening the Excel file through the file stream | |
Workbook workbook = new Workbook(sourceDir + "Date.xlsx"); | |
// Accessing the first worksheet in the Excel file | |
Worksheet worksheet = workbook.Worksheets[0]; | |
// Call AddDateFilter function to apply the filter | |
worksheet.AutoFilter.AddDateFilter(0, DateTimeGroupingType.Month, 2018, 1, 0, 0, 0, 0); | |
// Call refresh function to update the worksheet | |
worksheet.AutoFilter.Refresh(); | |
// Saving the modified Excel file | |
workbook.Save(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.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET | |
// The path to the documents directory. | |
//Source directory | |
string sourceDir = RunExamples.Get_SourceDirectory(); | |
//Output directory | |
string outputDir = RunExamples.Get_OutputDirectory(); | |
// Instantiating a Workbook object | |
// Opening the Excel file through the file stream | |
Workbook workbook = new Workbook(sourceDir + "Date.xlsx"); | |
// Accessing the first worksheet in the Excel file | |
Worksheet worksheet = workbook.Worksheets[0]; | |
// Call DynamicFilter function to apply the filter | |
worksheet.AutoFilter.DynamicFilter(0, DynamicFilterType.January); | |
// Call refresh function to update the worksheet | |
worksheet.AutoFilter.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.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET | |
// The path to the documents directory. | |
//Source directory | |
string sourceDir = RunExamples.Get_SourceDirectory(); | |
//Output directory | |
string outputDir = RunExamples.Get_OutputDirectory(); | |
// Instantiating a Workbook object | |
// Opening the Excel file through the file stream | |
Workbook workbook = new Workbook(sourceDir + "Number.xlsx"); | |
// Accessing the first worksheet in the Excel file | |
Worksheet worksheet = workbook.Worksheets[0]; | |
// Call Custom function to apply the filter | |
worksheet.AutoFilter.Custom(0, FilterOperatorType.GreaterOrEqual, 5, true, FilterOperatorType.LessOrEqual, 10); | |
// Call refresh function to update the worksheet | |
worksheet.AutoFilter.Refresh(); | |
// Saving the modified Excel file | |
workbook.Save(outputDir + "FilteredNumber.xlsx"); |
Text
Si une colonne contient du texte et que des cellules doivent être sélectionnées 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 une ligne doit être sélectionnée contenant le nom d’un pays particulier. Le code suivant montre le filtrage du texte. Des fichiers d’exemple sont donnés ci-dessous.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET | |
// The path to the documents directory. | |
//Source directory | |
string sourceDir = RunExamples.Get_SourceDirectory(); | |
//Output directory | |
string outputDir = RunExamples.Get_OutputDirectory(); | |
// Instantiating a Workbook object | |
// Opening the Excel file through the file stream | |
Workbook workbook = new Workbook(sourceDir + "Text.xlsx"); | |
// Accessing the first worksheet in the Excel file | |
Worksheet worksheet = workbook.Worksheets[0]; | |
// Call Filter function to apply the filter | |
worksheet.AutoFilter.Filter(0, "Angola"); | |
// Call refresh function to update the worksheet | |
worksheet.AutoFilter.Refresh(); | |
// Saving the modified Excel file | |
workbook.Save(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.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET | |
// The path to the documents directory. | |
//Source directory | |
string sourceDir = RunExamples.Get_SourceDirectory(); | |
//Output directory | |
string outputDir = RunExamples.Get_OutputDirectory(); | |
// Instantiating a Workbook object | |
// Opening the Excel file through the file stream | |
Workbook workbook = new Workbook(sourceDir + "Blank.xlsx"); | |
// Accessing the first worksheet in the Excel file | |
Worksheet worksheet = workbook.Worksheets[0]; | |
// Call MatchBlanks function to apply the filter | |
worksheet.AutoFilter.MatchBlanks(0); | |
// Call refresh function to update the worksheet | |
worksheet.AutoFilter.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.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET | |
// The path to the documents directory. | |
//Source directory | |
string sourceDir = RunExamples.Get_SourceDirectory(); | |
//Output directory | |
string outputDir = RunExamples.Get_OutputDirectory(); | |
// Instantiating a Workbook object | |
// Opening the Excel file through the file stream | |
Workbook workbook = new Workbook(sourceDir + "Blank.xlsx"); | |
// Accessing the first worksheet in the Excel file | |
Worksheet worksheet = workbook.Worksheets[0]; | |
// Call MatchNonBlanks function to apply the filter | |
worksheet.AutoFilter.MatchNonBlanks(0); | |
// Call refresh function to update the worksheet | |
worksheet.AutoFilter.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.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET | |
// Instantiating a Workbook object containing sample data | |
Workbook workbook = new Workbook("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 containing string "Ba" | |
worksheet.AutoFilter.Custom(0, FilterOperatorType.Contains, "Ba"); | |
//Refresh the filter to show/hide filtered rows | |
worksheet.AutoFilter.Refresh(); | |
// Saving the modified Excel file | |
workbook.Save("outSourseSampleCountryNames.xlsx"); |
Filtre personnalisé avec NeContientPas
Excel propose des filtres personnalisés comme filtrer les lignes qui ne contiennent pas 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 donné ci-dessous.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET | |
// Instantiating a Workbook object containing sample data | |
Workbook workbook = new Workbook("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 containing string "Ba" | |
worksheet.AutoFilter.Custom(0, FilterOperatorType.NotContains, "Be"); | |
//Refresh the filter to show/hide filtered rows | |
worksheet.AutoFilter.Refresh(); | |
// Saving the modified Excel file | |
workbook.Save("outSourseSampleCountryNames.xlsx"); |
Filtre personnalisé avec Commence par
Excel propose des filtres personnalisés comme filtrer les lignes qui commencent par 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 donné ci-dessous.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET | |
// 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"); |
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’échantillon fourni ci-dessous.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET | |
// 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 end with string "ia" | |
worksheet.AutoFilter.Custom(0, FilterOperatorType.BeginsWith, "ia"); | |
//Refresh the filter to show/hide filtered rows | |
worksheet.AutoFilter.Refresh(); | |
// Saving the modified Excel file | |
workbook.Save(outputDir + "outSourseSampleCountryNames.xlsx"); |