easypoi 多个实体类多个表头在一个sheet导入怎么处理
时间: 2024-05-16 16:18:03 浏览: 91
poi点入库处理,按照地市导入处理,自己需要创建表sa_poi_annotation
如果要在一个sheet中导入多个实体类对应的数据,每个实体类对应着不同的表头,可以使用 `@ExcelCollection` 注解来实现。
具体操作如下:
1. 在需要导入的主实体类中,使用 `@ExcelCollection` 注解定义其它实体类的集合属性,并指定集合对应的表头信息,示例代码如下:
```java
public class MainEntity {
@Excel(name = "主表头1")
private String mainHeader1;
@Excel(name = "主表头2")
private String mainHeader2;
// 定义一个集合属性,用于存储其它实体类的数据
@ExcelCollection(name = "其它表头", orderNum = "3") // orderNum 表示该集合所在列的位置
private List<OtherEntity> otherEntities;
// ... 省略getter和setter方法
}
```
2. 在其它实体类中,也使用 `@ExcelCollection` 注解定义其它实体类的集合属性,并指定集合对应的表头信息,示例代码如下:
```java
public class OtherEntity {
@Excel(name = "其它表头1")
private String otherHeader1;
@Excel(name = "其它表头2")
private String otherHeader2;
// ... 省略getter和setter方法
}
```
3. 对于要导入的数据,可以将其按照主实体类和其它实体类分别存储到不同的列表中,然后将其它实体类列表设置到主实体类的集合属性中,示例代码如下:
```java
List<MainEntity> mainEntities = new ArrayList<>();
List<OtherEntity> otherEntities1 = new ArrayList<>();
// 添加其它实体类1的数据到列表中
OtherEntity otherEntity1 = new OtherEntity();
otherEntity1.setOtherHeader1("other1-1");
otherEntity1.setOtherHeader2("other1-2");
otherEntities1.add(otherEntity1);
// 添加其它实体类2的数据到列表中
List<OtherEntity> otherEntities2 = new ArrayList<>();
OtherEntity otherEntity2 = new OtherEntity();
otherEntity2.setOtherHeader1("other2-1");
otherEntity2.setOtherHeader2("other2-2");
otherEntities2.add(otherEntity2);
// 将其它实体类列表设置到主实体类的集合属性中
MainEntity mainEntity1 = new MainEntity();
mainEntity1.setMainHeader1("main1-1");
mainEntity1.setMainHeader2("main1-2");
mainEntity1.setOtherEntities(otherEntities1);
mainEntities.add(mainEntity1);
MainEntity mainEntity2 = new MainEntity();
mainEntity2.setMainHeader1("main2-1");
mainEntity2.setMainHeader2("main2-2");
mainEntity2.setOtherEntities(otherEntities2);
mainEntities.add(mainEntity2);
```
4. 最后,使用 `ExcelExportUtil.exportExcel()` 方法进行导出即可,示例代码如下:
```java
// 导出到文件
ExcelExportUtil.exportExcel(new ExportParams("导出标题", "sheet1"), MainEntity.class, mainEntities, new FileOutputStream("导出文件名.xls"), ExcelType.HSSF);
// 导出到输出流
ExcelExportUtil.exportExcel(new ExportParams("导出标题", "sheet1"), MainEntity.class, mainEntities, System.out, ExcelType.HSSF);
```
阅读全文