功能介绍
官方文档地址: https://www.free-park.top/excelUtil
ExcelUtil借助反射和POI对Excel读取,省略了以往读取Excel的繁琐步骤,调用ExcelUtil只需要1步,对,你没有看错,1步足以读取到Excel的内容.兼容03/07版Excel.
核心功能 大数据导出(低内存占用):支持百万级别数据导出,不会造成OOM内存溢出 数据脱敏:支持对姓名、手机号、身份证等敏感信息进行自动脱敏处理 水印功能:支持为导出的Excel文件添加水印,保护文档安全 兼容03/07版Excel:同时支持处理.xls和.xlsx格式的Excel文件 引入ExcelUtil net.oschina.likaixuan excelutil 3.2.0 3.2.0版本 最新版 快速入门: 实体类 public class PhoneModel implements Serializable{ @Excel(title = "序号") private int num;
@Excel(title = "手机名称")
private String phoneName;
@Excel(title = "颜色")
private String color;
@Excel(title = "售价")
private double price;
@Excel(title = "零售价")
private BigDecimal salePrice;
@Excel(title = "时间")
private Date sj;
@Excel(title = "姓名", mask = SensitiveDataTypeEnum.NAME)
private String name;
@Excel(title = "手机", mask = SensitiveDataTypeEnum.PHONE)
private String phone;
@Excel(title = "身份证", mask = SensitiveDataTypeEnum.ID_CARD)
private String idCard;
} 读取 Excel 1: 一行代码读取Excel(本地文件路径,实体类) List list = ExcelUtil.readExcel("D:/test.xlsx", PhoneModel.class); 2: 一行代码读取Excel(从MultipartFile浏览器上传的Excel文件) @ResponseBody public List testImport1(MultipartFile file) throws Exception{ List list = ExcelUtil.readExcel(file.getBytes(), PhoneModel.class); return list; } 导出Excel 1: 小数据量(2w以内,如果需要带水印大数据量的场景,建议配合异步导出数据使用)导出(带水印) /**
-
测试Excel导出功能-适合小数据量导出(2w以内)
-
如果需要水印建议配合异步导出数据使用
-
@param response HttpServletResponse对象,用于输出Excel文件
-
@param num 导出的数据量
-
@throws Exception 导出过程中可能出现的异常 */ @GetMapping(value = "/exportExcelSmall") public void exportExcelSmall(HttpServletResponse response,int num) throws Exception{
List list = new ArrayList<>(); for(int i=0;i<num;i++){ PhoneModel model = new PhoneModel(); model.setNum((i+1)); model.setColor("金色"+i); model.setPhoneName("苹果"+i+"S"); model.setPrice(i); model.setSalePrice(BigDecimal.valueOf(0.01)); model.setSj(new Date()); model.setPhone("12345678901"); model.setName("张三疯"); model.setIdCard("4128289898890098"); list.add(model); } //真正导出只有这一行代码 ExcelUtil.exportExcel(response, list, PhoneModel.class, "测试Excel导出", "内部文档-注意保密-110");
} 2: 智能模式导出 /**
-
测试Excel导出功能-智能模式
-
适配小数据量的水印和兼容大数据量导出(>2万)
-
@param response HttpServletResponse对象,用于输出Excel文件
-
@param num 导出的数据量
-
@throws Exception 导出过程中可能出现的异常 */ @GetMapping(value = "/exportExcelSmart") public void exportExcelSmart(HttpServletResponse response,int num) throws Exception{
List list = new ArrayList<>(); //省略业务逻辑填充数据过程。。。 ExcelUtil.exportExcelSmart(response, list, PhoneModel.class, "测试Excel导出", "内部文档-注意保密-110");
} 3: 极速模式导出(适合大数据) /**
-
测试Excel导出功能-极速模式
-
不会生成水印,低内存模式运行,可导出百万级数据
-
@param response HttpServletResponse对象,用于输出Excel文件
-
@param num 导出的数据量
-
@throws Exception 导出过程中可能出现的异常 */ @GetMapping(value = "/exportExcelFast") public void exportExcelFast(HttpServletResponse response,int num) throws Exception{
List list = new ArrayList<>(); //省略业务逻辑填充数据过程。。。 ExcelUtil.exportExcelFast(response, list, PhoneModel.class, "测试Excel导出");
} 5: 一行代码导出Excel(适合导出到本地) ExcelUtil.exportExcel("d://test.xlsx", list, PhoneModel.class);