# ExcelUtil **Repository Path**: likaixuan0/ExcelUtil ## Basic Information - **Project Name**: ExcelUtil - **Description**: ExcelUtil借助反射和POI对Excel读取,省略了以往读取Excel的繁琐步骤 【官方文档地址】 - **Primary Language**: Java - **License**: GPL-2.0 - **Default Branch**: master - **Homepage**: http://likaixuan.top/excelUtil - **GVP Project**: No ## Statistics - **Stars**: 402 - **Forks**: 113 - **Created**: 2018-02-06 - **Last Updated**: 2026-02-07 ## Categories & Tags **Categories**: excel-utils **Tags**: None ## README 功能介绍 官方文档地址: 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;i2万) * @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);