<dependency>
<groupId>com.github.dreamroute</groupId>
<artifactId>excel-helper</artifactId>
<version>latest version</version>
</dependency>
- 简单:满足日常80%功能,不支持单元格合并、公式等特性;
- 多样:可导出excel-2003/2007,提供文件、byte数组导出,也可直接创建Workbook之后自行操作;
- 性能:工具内部大面积使用缓存,性能强大;
- 质量:与互联网上其他同类型工具类相比,代码较优雅;
- 方式:推荐使用xlsx方式,使用xls方式行数超过65535行可能造成OOM;
- 更新:更新迅速,只要有人反馈哪里需要调整修改,合情合理的情况下立马修改,发布;
-
定义实体类
@Data @Sheet(name = "DemoList") public class Demo { @Column(name = "姓名") private String name; @Column(name = "身高", cellType = CellType.NUMERIC) private BigDecimal height; @Column(name = "时间") // 支持日期类型转换,默认是将timestamp转换成'yyyy-MM-dd HH:mm:ss'类型 @DateColumn private long time; }
-
导出
@Test public void sortListTest() { List<Demo> demoList = new ArrayList<>(); for (int i=0; i<10; i++) { Demo demo = new Demo(); demo.name = "w.dehai"; demo.height = new BigDecimal("1.80342"); demoList.add(demo); } ExcelHelper.exportFile(ExcelType.XLS, demoList, "d:/DemoList.xls"); }
-
导入
@Test public void importTest() { String path = "d:/1.xlsx"; ExcelType type = ExcelType.XLSX; List<User> users = ExcelHelper.importFromPath(ExcelType.XLS, path, User.class); System.err.println(users); }
-
文件下载,直接在
Controller层使用download
方法进行文件下载
ExcelHelper.download(文件名, response, 数据);
-
导出一共有3类:
- ExcelHelper.exportFile()
- ExcelHelper.exportByteArray()
- ExcelHelper.exportWorkbook()
-
导入一共有4类:
- ExcelHelper.importFromPath
- ExcelHelper.importFromFile
- ExcelHelper.importFromByteArray
- ExcelHelper.importFromInputStream
-
相关注解说明:
- @Sheet:导出时候为sheet名称;
- @Column:定义列的相关属性;
- @DateColumn:日期类型列转换类型,默认timestamp -> 'yyyy-MM-dd HH:mm:ss'
- @Header:定义Header,也就是首行属性;
- @Cell:定义数据行属性;