Filtraggio dei dati
Dati Autofiltra
L’auto-filtraggio è il modo più rapido per selezionare solo gli elementi del foglio di lavoro che si desidera visualizzare in un elenco. La funzione di autofiltro consente agli utenti di filtrare gli elementi in un elenco in base a determinati criteri. Filtra in base a testo, numeri o date.
Autofiltro in Microsoft Excel
Per attivare la funzione di autofiltro in Microsoft Excel:
- Fare clic sulla riga dell’intestazione su un foglio di lavoro.
- Dal menu Dati, selezionare Filtro e poi Autofiltro.
Quando si applica un autofiltro a un foglio di lavoro, compaiono degli interruttori di filtro (frecce nere) alla destra degli intestazioni delle colonne.
- Fare clic su una freccia del filtro per visualizzare un elenco di opzioni di filtro.
Alcune delle opzioni di autofiltro sono:
Opzioni | Descrizione |
---|---|
All | Mostra tutti gli elementi nell’elenco una volta. |
Custom | Personalizza i criteri di filtro come contiene/non contiene |
Filter by Color | Filtra in base al colore riempito |
Date Filters | Filtra le righe in base a diversi criteri di data |
Number Filters | Diversi tipi di filtro sui numeri come confronto, medie e i primi 10 ecc. |
Text Filters | Diversi filtri come inizia con, termina con, contiene ecc., |
Blanks/Non Blanks | Questi filtri possono essere implementati tramite Filtro Testo Vuoto |
Gli utenti filtrano manualmente i dati del foglio di lavoro in Microsoft Excel utilizzando queste opzioni.
Filtro automatico con Aspose.Cells
Aspose.Cells fornisce una classe, Workbook, che rappresenta un file di Excel. La classe Workbook contiene una collezione di fogli di lavoro che consente di accedere a ciascun foglio di lavoro nel file di Excel.
Un foglio di lavoro è rappresentato dalla classe Worksheet. La classe Worksheet fornisce una vasta gamma di proprietà e metodi per gestire i fogli di lavoro. Per creare un filtro automatico, utilizzare la proprietà AutoFilter della classe Worksheet. La proprietà AutoFilter è un oggetto della classe AutoFilter, che fornisce la proprietà Range per specificare il range di celle che costituiscono una riga di intestazione. Un filtro automatico viene applicato al range di celle che è la riga di intestazione.
In ogni foglio di lavoro, è possibile specificare solo un intervallo di filtro. Questo è limitato da Microsoft Excel. Per il filtraggio personalizzato dei dati, utilizzare il metodo AutoFilter.Custom.
Nell’esempio qui sotto, abbiamo creato lo stesso autofiltro utilizzando Aspose.Cells come abbiamo creato utilizzando Microsoft Excel nella sezione precedente.
// 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"); |
Diversi tipi di filtro
Aspose.Cells offre molteplici opzioni per applicare diversi tipi di filtri come Filtro colore, Filtro data, Filtro numero, Filtro testo, Filtri vuoti e non vuoti.
Colore di riempimento
Aspose.Cells fornisce una funzione AddFillColorFilter per filtrare i dati in base alla proprietà del colore di riempimento delle celle. Nell’esempio qui sotto, viene utilizzato un file modello con diversi colori di riempimento nella prima colonna del foglio per testare la funzione di filtraggio del colore. I file di esempio possono essere scaricati dai seguenti link.
// 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"); |
Data
Diversi tipi di filtri per data possono essere implementati, come filtrare tutte le righe con date in gennaio 2018. Il seguente codice di esempio mostra questo filtro utilizzando la funzione AddDateFilter. I file di esempio sono dati di seguito.
// 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"); |
Data Dinamica
A volte sono necessari filtri dinamici basati sulla data come tutte le celle con date a gennaio indipendentemente dall’anno. In questo caso, viene utilizzata la funzione DynamicFilter come indicato nel codice di esempio seguente. I file di esempio sono dati di seguito.
// 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"); |
Numero
I filtri personalizzati possono essere applicati utilizzando Aspose.Cells come la selezione di celle con numeri compresi in un determinato intervallo. L’esempio seguente dimostra l’uso della funzione Custom() per filtrare i numeri. Sono forniti file di esempio di seguito.
// 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"); |
Testo
Se una colonna contiene del testo e si vogliono selezionare celle contenenti un testo particolare, può essere utilizzata la funzione Filter(). Nell’esempio seguente, il file di modello contiene un elenco di paesi e viene selezionata la riga contenente il nome del paese desiderato. Il seguente codice dimostra il filtraggio del testo. I file di esempio sono dati di seguito.
// 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"); |
Vuoti
Se una colonna contiene del testo in modo che alcune celle siano vuote e è necessario selezionare solo le righe in cui sono presenti celle vuote, è possibile utilizzare la funzione MatchBlanks() come dimostrato di seguito. I file di esempio sono dati di seguito.
// 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 vuoti
Quando le celle contenenti del testo devono essere filtrate, utilizzare la funzione di filtro MatchNonBlanks come dimostrato di seguito. I file di esempio sono dati di seguito.
// 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"); |
Filtro personalizzato con Contiene
Excel fornisce filtri personalizzati come filtrare le righe che contengono una stringa specifica. Questa funzionalità è disponibile in Aspose.Cells e dimostrata di seguito filtrando i nomi nel file di esempio. Sono forniti file di esempio di seguito.
// 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"); |
Filtro personalizzato con NonContiene
Excel fornisce filtri personalizzati come filtrare le righe che non contengono una stringa specifica. Questa funzione è disponibile in Aspose.Cells e dimostrata di seguito filtrando i nomi nel file di esempio fornito di seguito.
// 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"); |
Filtro personalizzato con IniziaCon
Excel fornisce filtri personalizzati come filtrare le righe che iniziano con una stringa specifica. Questa funzione è disponibile in Aspose.Cells e dimostrata di seguito filtrando i nomi nel file di esempio fornito di seguito.
// 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"); |
Filtro personalizzato con TerminaCon
Excel fornisce filtri personalizzati come filtrare le righe che terminano con una stringa specifica. Questa funzionalità è disponibile in Aspose.Cells e dimostrata di seguito filtrando i nomi nel file di esempio fornito di seguito.
// 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"); |