在日常办公中,Excel工作表通常含有大量不同类型的数据,当我们想方便,快捷地从中筛选并显示所需数据时,则需用到筛选器这一工具。本文就将通过使用Java程序来演示如何设置Excel筛选器。
使用工具:Free Spire.XLS for Java(免费版)
Jar文件获取及导入:
方法1:通过官网下载获取jar包。解压后将lib文件夹下的Spire.Xls.jar文件导入Java程序。(如下图)
方法2:通过maven仓库安装导入。具体安装教程参见此网页。
原Excel文档:
【示例1】设置文本筛选
import com.spire.xls.ExcelVersion;
import com.spire.xls.Workbook;
import com.spire.xls.Worksheet;
import com.spire.xls.collections.AutoFiltersCollection;
public class TextFilter {
public static void main(String[] args) {
//加载Excel示例文档
Workbook wb = new Workbook();
wb.loadFromFile("C:\\Users\\Test1\\Desktop\\Sample.xlsx");
//获取第一个工作表
Worksheet sheet = wb.getWorksheets().get(0);
//获取AutoFiltersCollection对象
AutoFiltersCollection filters = sheet.getAutoFilters();
//设置筛选器的添加范围
filters.setRange(sheet.getCellRange(1,1,16,8));
//在第二列添加筛选器并设置文本为“市场部”的筛选条件
filters.addFilter(1, "市场部");
//运行筛选功能
filters.filter();
//保存文档
wb.saveToFile("output/TextFilter.xlsx", ExcelVersion.Version2013);
}
}
设置效果:
【示例2】设置数字筛选
import com.spire.xls.ExcelVersion;
import com.spire.xls.Workbook;
import com.spire.xls.Worksheet;
import com.spire.xls.collections.AutoFiltersCollection;
import com.spire.xls.core.spreadsheet.autofilter.FilterOperatorType;
public class NumberFilter {
public static void main(String[] args) {
//加载Excel示例文档
Workbook wb = new Workbook();
wb.loadFromFile("C:\\Users\\Test1\\Desktop\\Sample.xlsx");
//获取第一个工作表
Worksheet sheet = wb.getWorksheets().get(0);
//获取AutoFiltersCollection对象
AutoFiltersCollection filters = sheet.getAutoFilters();
//设置筛选器的添加范围
filters.setRange(sheet.getCellRange(1,1,16,8));
//在第六列添加筛选器并设置数字范围为350-900的筛选条件
filters.customFilter(5, FilterOperatorType.GreaterOrEqual, 350, true, FilterOperatorType.LessOrEqual, 900);
//运行筛选功能
filters.filter();
//保存文档
wb.saveToFile("output/NumberFilter.xlsx", ExcelVersion.Version2013);
}
}
设置效果:
【示例3】设置颜色筛选
import com.spire.xls.ExcelVersion;
import com.spire.xls.Workbook;
import com.spire.xls.Worksheet;
import com.spire.xls.collections.AutoFiltersCollection;
public class ColorFilter {
public static void main(String[] args) {
//加载Excel示例文档
Workbook wb = new Workbook();
wb.loadFromFile("C:\\Users\\Test1\\Desktop\\Sample.xlsx");
//获取第一张工作表
Worksheet sheet = wb.getWorksheets().get(0);
//获取AutoFiltersCollection对象
AutoFiltersCollection filters = sheet.getAutoFilters();
//设置筛选器的添加范围
filters.setRange(sheet.getCellRange(1,1,16,8));
//在第一列添加筛选器并设置单元格背景颜色为A1的筛选条件
filters.addFillColorFilter(0, sheet.getCellRange("A1").getStyle().getColor());
//运行筛选功能
filters.filter();
//保存文档
wb.saveToFile("output/ColorFilter.xlsx", ExcelVersion.Version2013);
}
}
设置效果:
【示例4】设置日期筛选
import com.spire.xls.ExcelVersion;
import com.spire.xls.Workbook;
import com.spire.xls.Worksheet;
import com.spire.xls.collections.AutoFiltersCollection;
import com.spire.xls.core.spreadsheet.autofilter.DateTimeGroupingType;
public class DateFilter {
public static void main(String[] args) {
//加载Excel示例文档
Workbook wb = new Workbook();
wb.loadFromFile("C:\\Users\\Test1\\Desktop\\Sample.xlsx");
//获取第一张工作表
Worksheet sheet = wb.getWorksheets().get(0);
//获取AutoFiltersCollection对象
AutoFiltersCollection filters = sheet.getAutoFilters();
//设置筛选器的添加范围
filters.setRange(sheet.getCellRange(1,1,16,8));
//在第一列添加筛选器并设置日期为2020年3月的筛选条件
filters.addDateFilter(0, DateTimeGroupingType.Month, 2020, 2, 1, 0, 0, 0 );
//运行筛选功能
filters.filter();
//保存文档
wb.saveToFile("output/DateFilter.xlsx", ExcelVersion.Version2013);
}
}
设置效果:
(本文完)