MyExcel,是一个集导入、导出、加密 Excel 等多项功能的 Java 工具包。
MyExcel 采用声明式语法来构建、读取 Excel,屏蔽 POI 的具体操作细节(对 POI 无感知),以开发常用的技术替代,使得构建(从简单到高度复杂 Excel)以及读取 Excel 变得极为便利,且构建、读取性能极为优异,占用内存极低。
如导入:
List<ArtCrowd> result = SaxExcelReader.of(ArtCrowd.class)
.sheet(0) // 0代表第一个sheet,如果为0,可省略该操作,也可sheet("名称")读取
.rowFilter(row -> row.getRowNum() > 0) // 如无需过滤,可省略该操作,0代表第一行
.detectedMerge() // 识别合并单元格并填充数据,默认不识别
.read(path.toFile());
本次更新点如下:
- 修复不选取所有字段导出的情况下@MultiColumn无效问题;
- 支持jakarta.servlet,可在springboot 3使用附件导出;
- 支持内聚导出;
- 升级poi版本为5.2.4;
- 其他依赖版本升级;
其中,内聚导出如下:
聚合导出和聚合列导出的差异,在于注解 @MultiColumn所作用的对象不是List,而是自定义对象:
public class School{
@ExcelColumn(title = "学校名称")
String schoolName;
@MultiColumn(classType = ExtendedInfo.class)
ExtendedInfo extendedInfo;
}
public class ExtendedInfo {
@ExcelColumn(title = "学生总数")
Integer count;
@ExcelColumn(title = "学生姓名")
List<String> studentNames;
}
具体,请移步文档:https://github.com/liaochong/myexcel/wiki