MyExcel 3.11.0.RC 版本发布
感谢大家以往对MyExcel的支持,祝大家新年快乐,阖家团圆!!!
MyExcel,是一个集导入、导出、加密 Excel 等多项功能的 Java 工具包。
MyExcel 采用声明式语法来构建、读取 Excel,屏蔽 POI 的具体操作细节(对 POI 无感知),以开发常用的技术替代,使得构建(从简单到高度复杂Excel)以及读取Excel变得极为便利,且构建、读取性能极为优异,占用内存极低(具体,请移步参考MyExcel&阿里EasyExcel性能对比)。
如导入:
List<ArtCrowd> result = SaxExcelReader.of(ArtCrowd.class)
.sheet(0) // 0代表第一个sheet,如果为0,可省略该操作,也可sheet("名称")读取
.rowFilter(row -> row.getRowNum() > 0) // 如无需过滤,可省略该操作,0代表第一行
.beanFilter(ArtCrowd::isDance) // bean过滤
.read(path.toFile());
本次是新年前最后一个特性版本,更新点如下:
- 修复数组类型下拉列表为空引发的空指针问题;
- 新增MultiColumn注解,支持聚合列导出,实现一对多导出;
- 修改水印依赖包scope,默认引入,降低使用门槛;
- 其他代码优化;
聚合列指的是导出Bean,大部分属性相同,仅部分属性不同,用一个Bean将同一属性不同的值以List收集作为列,示例如下:
public class School{ @ExcelColumn(title = "学校名称") String schoolName; @MultiColumn(classType = String.class) @ExcelColumn(title = "学生姓名") List<String> studentNames; }
其中,学生姓名列表就是聚合列,导出时无需按照行维度,一个Bean中仅一个学校名称,一个学生姓名,更加语义化,最终效果是一致的:
public class School{ @ExcelColumn(title = "学校名称") String schoolName; @ExcelColumn(title = "学生姓名") String studentName; }
聚合列要求有两点:
- 字段类型必须是List;
- 使用注解 @MultiColumn;
其他,请移步文档:https://github.com/liaochong/myexcel/wiki
