Рубрики
Без рубрики

Добавление фильтров в Excel на Java

В этой статье показано, как добавить текстовый фильтр, фильтр чисел, цветовой фильтр и фильтр даты в Excel на Java. Помеченный java, excel, фильтром.

Если данные на листе Excel очень велики, вы можете добавить “текстовый фильтр”, “числовой фильтр”, “цветовой фильтр” или “фильтр даты” в выбранную область для фильтрации данных. Отфильтрованный рабочий лист отображает нужные вам данные и скрывает остальные.

На листе, показанном ниже, вы можете добавить текстовый фильтр в столбец “категория”, чтобы на листе отображалась только одна категория данных; вы можете добавить числовой фильтр в столбец “количество”, чтобы на листе отображались строки, содержащие число от 80 до 100; вы можете добавить цветовой фильтр для отображения строк, имеющих цвет фона; вы также можете добавить фильтр даты в столбец “дата” для отображения данных в течение определенного месяца.

Давайте начнем с импорта Spire.Xls.jar файл в вашем java-приложении.

Добавить Spire.Xls.jar как зависимость

Способ 1: Скачать Бесплатный Шпиль. XLS для Java пакет, распакуйте его, и вы получите Spire.Doc.jar файл из папки “библиотека”. Импортируйте файл jar в свой проект в качестве зависимости.

Способ 2: Если вы создаете проект Maven, вы можете легко добавить зависимость jar, добавив следующие конфигурации в pom.xml .


        
            com.e-iceblue
            e-iceblue
            http://repo.e-iceblue.com/nexus/content/groups/public/
        


    
         e-iceblue 
        spire.xls.free
        2.2.0
    

Пример 1. Текстовый фильтр

//Create a Workbook object
Workbook wb = new Workbook();
//Load a sample Excel file
wb.loadFromFile("C:\\Users\\Administrator\\Desktop\\sample.xlsx");
//Get the first worksheet
Worksheet sheet = wb.getWorksheets().get(0);
//Get the AutoFiltersCollection object
AutoFiltersCollection filters = sheet.getAutoFilters();
//Set the cell range where the filters will be added
filters.setRange(sheet.getCellRange(2,2,16,5));
//Add a filter to the second column of the selected range and set the filter criteria, which is the text "C"
filters.addFilter(1, "C");
//Execute filter function
filters.filter();
//Save to file
wb.saveToFile("TextFilter.xlsx", ExcelVersion.Version2013);

Пример 2. Числовой фильтр

//Create a Workbook object
Workbook wb = new Workbook();
//Load a sample Excel file
wb.loadFromFile("C:\\Users\\Administrator\\Desktop\\sample.xlsx");
//Get the first worksheet
Worksheet sheet = wb.getWorksheets().get(0);
//Get the AutoFiltersCollection object
AutoFiltersCollection filters = sheet.getAutoFilters();
//Set the cell range where the filters will be added
filters.setRange(sheet.getCellRange(2,2,16,5));
//Add a custom filter to the third column of the selected range and set the filter criteria, which is to select the number greater than or equal to 80 and less than or equal to 100
filters.customFilter(2, FilterOperatorType.GreaterOrEqual, 80, true, FilterOperatorType.LessOrEqual, 100);
//Execute filter function
filters.filter();
//Save to file
wb.saveToFile("NumberFilter.xlsx", ExcelVersion.Version2013);

Пример 3. Цветовой фильтр

//Create a Workbook object
Workbook wb = new Workbook();
//Load a sample Excel file
wb.loadFromFile("C:\\Users\\Administrator\\Desktop\\sample.xlsx");
//Get the first worksheet
Worksheet sheet = wb.getWorksheets().get(0);
//Get the AutoFiltersCollection object
AutoFiltersCollection filters = sheet.getAutoFilters();
//Set the cell range where the filters will be added
filters.setRange(sheet.getCellRange(2,2,16,5));
//Add a color filter to the first column of the selected range and set the filter criteria, that is, the background color of cell B4
filters.addFillColorFilter(0, sheet.getCellRange("B4").getStyle().getColor());
//Execute filter function
filters.filter();
//Save to file
wb.saveToFile("ColorFilter.xlsx", ExcelVersion.Version2013);

Пример 4. Фильтр по дате

//Create a Workbook object
Workbook wb = new Workbook();
//Load a sample Excel file
wb.loadFromFile("C:\\Users\\Administrator\\Desktop\\sample.xlsx");
//Get the first worksheet
Worksheet sheet = wb.getWorksheets().get(0);
//Get the AutoFiltersCollection object
AutoFiltersCollection filters = sheet.getAutoFilters();
//Set the cell range where the filters will be added
filters.setRange(sheet.getCellRange(2,2,16,5));
//Add a date filter in the fourth column of the selected range, using April 2019 as the filter criteria
filters.addDateFilter(3, DateTimeGroupingType.Month, 2019, 4, 1, 0, 0, 0 );
//Execute filter function
filters.filter();
//Save to file
wb.saveToFile("DateFilter.xlsx", ExcelVersion.Version2013);

Оригинал: “https://dev.to/eiceblue/add-filters-to-excel-in-java-cfb”