Фильтрация данных
Данные автофильтра
Автофильтрация — это самый быстрый способ выбрать на листе только те элементы, которые вы хотите отобразить в списке. Функция автофильтра позволяет пользователям фильтровать элементы в списке в соответствии с заданными критериями. Фильтровать по тексту, числам или датам.
Автофильтр в Microsoft Excel
Чтобы активировать функцию автофильтра в Microsoft Excel:
- Щелкните строку заголовка на листе.
- ОтДанныеменю, выберитеФильтра потомАвтофильтр.
Когда вы применяете автофильтр к рабочему листу, переключатели фильтров (черные стрелки) появляются справа от заголовков столбцов.
- Щелкните стрелку фильтра, чтобы просмотреть список параметров фильтра.
Некоторые параметры автофильтра:
Параметры | Описание |
---|---|
Все | Показать все элементы в списке один раз. |
Обычай | Настройте критерии фильтра, такие как содержит/не содержит |
Фильтр по цвету | Фильтры на основе заполненного цвета |
Фильтры даты | Фильтрует строки по разным критериям по дате |
Числовые фильтры | Различные типы фильтров по числам, такие как сравнение, средние значения, 10 лучших и т. д. |
Текстовые фильтры | Различные фильтры, такие как начинается с, заканчивается, содержит и т. д. |
Пустые/не пустые | Эти фильтры могут быть реализованы с помощью пустого текстового фильтра. |
Пользователи вручную фильтруют данные своих рабочих листов в Microsoft Excel, используя эти параметры. |
Автофильтр с Aspose.Cells
Aspose.Cells предоставляет класс,Рабочая тетрадькоторый представляет файл Excel.Рабочая тетрадькласс содержитРабочий листКоллекциякоторый позволяет получить доступ к каждому рабочему листу в файле Excel.
Рабочий лист представленРабочий листучебный класс.Рабочий листКласс предоставляет широкий спектр свойств и методов для управления рабочими листами. Для создания автофильтра используйтеАвтофильтрсобственностьРабочий листучебный класс.Автофильтримущество – это объектАвтофильтркласс, который обеспечиваетСпектрсвойство для указания диапазона ячеек, составляющих строку заголовка. Автофильтр применяется к диапазону ячеек, который является строкой заголовка.
На каждом листе можно указать только один диапазон фильтров. Это ограничено Microsoft Excel. Для пользовательской фильтрации данных используйтеАвтоФильтр.Пользовательский метод.
В приведенном ниже примере мы создали тот же автофильтр, используя Aspose.Cells, что и мы, используя Microsoft Excel в предыдущем разделе.
// 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"); |
Различные типы фильтров
Aspose.Cells предоставляет несколько вариантов для применения различных типов фильтров, таких как цветной фильтр, фильтр даты, числовой фильтр, текстовый фильтр, пустые фильтры и пустые фильтры.
Цвет заливки
Aspose.Cells предоставляет функцию[добавитьFillColorFilter](https://reference.aspose.com/cells/java/com.aspose.cells/autofilter#addFillColorFilter(int,%20int,%20com.aspose.cells.CellsColor,%20com.aspose.cells.CellsColor)для фильтрации данных на основе свойства цвета заливки ячеек. В приведенном ниже примере файл шаблона с разными цветами заливки в первом столбце листа используется для проверки функции фильтрации цветов. Для проверки работоспособности можно загрузить следующие файлы.
// 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"); |
Датировать
Различные типы фильтров дат могут быть реализованы, например, фильтрация всех строк, имеющих даты в январе 2018 года. Следующий пример кода демонстрирует этот фильтр с использованиемдобавитьдатефильтр функция. Следующие файлы можно использовать для тестирования этой функциональности.
// 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"); |
Динамическая дата
Иногда требуются динамические фильтры на основе даты, например, все ячейки, имеющие даты в январе, независимо от года. В таком случае,Динамический фильтр используется, как показано в следующем примере кода. Следующие файлы могут быть использованы для тестирования.
// 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"); |
Число
Пользовательские фильтры можно применять с помощью Aspose.Cells, например, выбирать ячейки с номером в заданном диапазоне. Следующий пример демонстрирует использованиеобычай() для фильтрации чисел. Образцы файлов можно скачать по следующим ссылкам.
// 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"); |
Текст
Если столбец содержит текст, и необходимо выбрать ячейки, содержащие определенный текст,фильтр() можно использовать. В следующем примере файл шаблона содержит список стран, и необходимо выбрать строку, содержащую название конкретной страны. В следующем коде демонстрируется фильтрация текста с использованием приведенных ниже примеров файлов.
// 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"); |
Бланки
Если столбец содержит текст, так что несколько ячеек пусты, и фильтр требуется для выбора только тех строк, в которых присутствуют пустые ячейки,matchBlanks() можно использовать, как показано ниже. Образцы файлов можно скачать по следующим ссылкам.
// 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"); |
Не пустые
Когда ячейки с любым текстом должны быть отфильтрованы, используйтеMatchNonBlanks функция фильтра, как показано ниже. Образцы файлов можно скачать по следующим ссылкам.
// 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"); |
Пользовательский фильтр с содержит
Excel предоставляет настраиваемые фильтры, такие как строки фильтра, которые содержат определенную строку. Эта функция доступна в версии Aspose.Cells и демонстрируется ниже путем фильтрации имен в образце файла. Образцы файлов можно скачать по следующим ссылкам.
// 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"); |
Пользовательский фильтр с NotContains
Excel предоставляет настраиваемые фильтры, такие как строки фильтра, которые не содержат какой-либо конкретной строки. Эта функция доступна в Aspose.Cells и демонстрируется ниже путем фильтрации имен в образце файла, приведенном ниже.
// 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"); |
Пользовательский фильтр с BeginsWith
Excel предоставляет настраиваемые фильтры, такие как строки фильтра, которые начинаются с определенной строки. Эта функция доступна в Aspose.Cells и демонстрируется ниже путем фильтрации имен в образце файла, приведенном ниже.
// 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"); |
Пользовательский фильтр с EndsWith
Excel предоставляет настраиваемые фильтры, такие как строки фильтра, которые заканчиваются определенной строкой. Эта функция доступна в Aspose.Cells и демонстрируется ниже путем фильтрации имен в образце файла, приведенном ниже.
// 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"); |