zouzhiy-excel 简介
zouzhiy-excel 是一款 Excel 导入导出的轻量级工具。对 POI 的接口做了一层封装,使导入导出更加简便快捷。
Spring 环境下集成
<dependency>
<groupId>io.github.zouzhiy</groupId>
<artifactId>zouzhiy-excel-boot-starter</artifactId>
<version>1.1.1</version>
</dependency>
开始使用
- 首先创建业务对象
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ExcelClass(rowHeadWrite = CustomRowHeadWrite.class)
public class HeadVO {
private String name;
private String title;
@ExcelField(colspan = 3)
private ItemVo item;
}
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class ItemVo {
private String firstName;
private String lastName;
private Integer age;
}
rowHeadWrite 指定自定义标题写入的实现
- 创建ItemVO的CellHandler
@Component
public class ItemCellHandler implements CellHandler<ItemVo> {
@Override
public Class<ItemVo> getJavaType() {
return ItemVo.class;
}
@Override
public ExcelType getExcelType() {
return ExcelType.STRING;
}
@Override
public ItemVo read(SheetContext sheetContext, ExcelFieldConfig excelFieldConfig, CellResultSet cellResultSet) {
if (cellResultSet == null) {
return null;
}
if (cellResultSet.isNone()) {
return null;
}
List<CellResult> cellResultList = cellResultSet.getCellResultListList().get(0);
CellResult cellResultFirstName = cellResultList.size() > 0 ? cellResultList.get(0) : CellResult.none();
CellResult cellResultSecondName = cellResultList.size() > 1 ? cellResultList.get(1) : CellResult.none();
CellResult cellResultAge = cellResultList.size() > 2 ? cellResultList.get