-
Notifications
You must be signed in to change notification settings - Fork 325
聚合列&内聚导出
清沐 edited this page Nov 17, 2023
·
3 revisions
3.11.0.RC及后续版本支持该特性
聚合列指的是导出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;
如需合并非聚合列,需调用DefaultStreamExcelBuilder autoMerge方法
聚合导出和聚合列导出的差异,在于注解 @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;
}
-
Overview
概述 -
FAQ
常见问题 -
Dependency adding
依赖添加 -
Excel/Csv import
Excel/Csv导入 - 一对多导入
-
Excel default export
默认导出 -
Excel streaming export
流式导出 -
Dynamic export
动态导出 -
Excel template build
模板构建 -
CSV export
csv导出 -
Multiple sheet import
多sheet导入 -
Multiple sheet export
多sheet导出 - 聚合列&聚合导出
-
Custom style
自定义样式 -
Multilevel header
多级表头 -
Wrap within cell
单元格内换行 -
Image export
图片导出 -
Image import
图片导入 -
Hyperlink
链接 - 读取链接
-
Template row height setting
模板行高度设置 -
Drop-down-list
下拉列表 -
Custom convert
写入自定义转化 -
Formula usage
公式使用 -
Template cell setting
单元格设置 -
Header freeze
区域冻结 - 提示
-
Style support
样式支持 - 添加水印
- 按列读取
- 单元格斜线绘制
- 设置批注
- 版本日志