MyExcel 4.3.0.RC 发布,支持一对多导入


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);

本次更新如下

  • 修复DefaultExcelBuilder调用hideColumns无效问题;
  • SaxExcelReader支持一对多导入
  • 调整DefaultStreamExcelBuilder等待队列长度,提升导出性能;
  • 升级imageio-jpeg版本为3.8.2;

一对多导入示例

示例1

image

URL htmlToExcelEampleURL = this.getClass().getResource("/muilt_read.xlsx");
Path path = Paths.get(htmlToExcelEampleURL.toURI());

List<Grade> multiParents = SaxExcelReader.of(Grade.class)
.rowFilter(row -> row.getRowNum() > 0)
.detectedMerge() // 必须要调用识别合并单元格方法,否则无效
.read(Files.newInputStream(path));

public class Grade {
@ExcelColumn(index=0)
private String gradeName;

@MultiColumn(classType=String.class)
@ExcelColumn(index=1)
private List<String> studentNames;

@MultiColumn(classType=Integer.class)
@ExcelColumn(index=2)
private List<Integer> studentAges;
}

示例2

image

URL htmlToExcelEampleURL = this.getClass().getResource("/muilt_read.xlsx");
Path path = Paths.get(htmlToExcelEampleURL.toURI());

List<Grade> multiParents = SaxExcelReader.of(Grade.class)
.rowFilter(row -> row.getRowNum() > 0)
.detectedMerge() // 必须要调用识别合并单元格方法,否则无效
.read(Files.newInputStream(path));

public class Grade {
@ExcelColumn(index=0)
private String gradeName;

@MultiColumn(classType=Student.class)
private List<Student> students;
}

public class Student {
 @ExcelColumn(index=1)
 private String name;

 @ExcelColumn(index=2)
 private Integer age;
}

示例3

image

 

URL htmlToExcelEampleURL = this.getClass().getResource("/muilt_read.xlsx");
Path path = Paths.get(htmlToExcelEampleURL.toURI());

List<School> multiParents = SaxExcelReader.of(School.class)
.rowFilter(row -> row.getRowNum() > 0)
.detectedMerge() // 必须要调用识别合并单元格方法,否则无效
.read(Files.newInputStream(path));

public class School {
@ExcelColumn(index=0)
private String name;

@MultiColumn(classType=Grade.class)
private List<Grade> grades;
}

public class Grade {
@ExcelColumn(index=1)
private String gradeName;

@MultiColumn(classType=Student.class)
private List<Student> students;
}

public class Student {
 @ExcelColumn(index=2)
 private String name;

 @ExcelColumn(index=3)
 private Integer age;
}

具体,请移步文档https://github.com/liaochong/myexcel/wiki


相關推薦

2023-03-27

MyExcel,是一个集导入、导出、加密 Excel 等多项功能的 Java 工具包。 MyExcel 采用声明式语法来构建、读取 Excel,屏蔽 POI 的具体操作细节(对 POI 无感知),以开发常用的技术替代,使得构建(从简单到高度复杂 Excel)以及读取 E

2023-11-18

MyExcel,是一个集导入、导出、加密 Excel 等多项功能的 Java 工具包。 MyExcel 采用声明式语法来构建、读取 Excel,屏蔽 POI 的具体操作细节(对 POI 无感知),以开发常用的技术替代,使得构建(从简单到高度复杂 Excel)以及读取 E

2024-08-23

项目说明 maku-cloud 是采用 SpringCloud Alibaba 2023、SpringCloud 2023、SpringBoot 3.3、SpringSecurity 6.3、Nacos、Mybatis-Plus、Redis、Vue3、Element-Plus 等框架,开发的一套 SpringCloud 低代码开发平台,旨在为开发者提供一个简洁、高效、可扩展的低

2024-08-01

介绍 maku-boot 是采用 SpringBoot3.3、SpringSecurity6.3、Mybatis-Plus、Flowable7.0、Vue3、Element-plus 等技术开发的低代码开发平台,旨在为开发者提供一个简洁、高效、可扩展的低代码开发平台。 使用门槛极低,支持国密加密、达梦数据

2024-06-19

ORM中的一对一,一对多 JPA 中 一对一,一对多 都是在实体类中配置的 ,这就导致很尴尬,很多时候 我们并不需要,只能设置懒延迟了,有时候 我们又想它不要懒延迟,不然后 每次都要手动去调一下,然后JSON 或者 模板里就

2024-03-19

放心升级,不用任何担心,完全没问题 1.4.4 更新:1.4.4发布 1. @TableField增加修改默认值 2. 动态数据源支持springboot3 自动装配 3. 数据库函数和条件方法增加null和空值等检测 4. 优化其他代码 mybatis-mp 包含丰富的 api: 1:基于注

2023-12-06

全新一代基于 mybatis 扩展的 orm 框架,拥有良好的性能和扩展性。 1:基于注解,映射数据库; 2:支持多表 join 和返回; 3:api 采用 lambda 和 stream 流式设计; 4:内置分页以及超强的 sql 优化功能; 5:稳定且性能极优; 6:

2023-07-08

MyBatis-Flex: 一个优雅的 MyBatis 增强框架 特征 1、很轻量 MyBatis-Flex 整个框架只依赖 MyBatis,再无其他任何第三方依赖。 2、只增强 MyBatis-Flex 支持 CRUD、分页查询、多表查询、批量操作,但不丢失 MyBatis 原有的任何功能

2024-03-12

1.4.2 更新: 1:增加forUpdate no Wait功能 2:增加Pager 静态方法 3:优化sql拼接 4:增加动态/多数据源支持(可分组)   mybatis-mp 包含丰富的 api: 1:基于注解,映射数据库; 2:支持多表 join 和返回; 3:api 采用 lambda 和 strea

2024-01-06

mybatis-mp 包含丰富的 api: 1:基于注解,映射数据库; 2:支持多表 join 和返回; 3:api 采用 lambda 和 stream 流式设计; 4:内置分页以及超强的 sql 优化功能; 5:稳定且性能极优; 6:轻量级封装 mybatis,几乎没有侵入; 7:

2023-12-14

全新一代基于 mybatis 扩展的 orm 框架,拥有良好的性能和扩展性。 1:基于注解,映射数据库; 2:支持多表 join 和返回; 3:api 采用 lambda 和 stream 流式设计; 4:内置分页以及超强的 sql 优化功能; 5:稳定且性能极优; 6:

2023-12-16

全新一代基于 mybatis 扩展的 orm 框架,拥有良好的性能和扩展性。 1:基于注解,映射数据库; 2:支持多表 join 和返回; 3:api 采用 lambda 和 stream 流式设计; 4:内置分页以及超强的 sql 优化功能; 5:稳定且性能极优; 6:

2024-01-02

mybatis-mp 包含丰富的 api: 1:基于注解,映射数据库; 2:支持多表 join 和返回; 3:api 采用 lambda 和 stream 流式设计; 4:内置分页以及超强的 sql 优化功能; 5:稳定且性能极优; 6:轻量级封装 mybatis,几乎没有侵入; 7:

2024-02-05

mybatis-mp 包含丰富的 api: 1:基于注解,映射数据库; 2:支持多表 join 和返回; 3:api 采用 lambda 和 stream 流式设计; 4:select 自动化以及结果 1 对 1,1 对多,超级方便快捷; 5:内置分页以及超强的 sql 优化功能; 6:稳定