-
Notifications
You must be signed in to change notification settings - Fork 325
Excel默认导出
清沐 edited this page Jul 22, 2019
·
26 revisions
/**
* 普通方式导出,少量数据适用,如数据量很大,如百万,建议使用DefaultStreamExcelBuilder,避免内存占用过多
*/
@GetMapping("/default/excel/example")
public void defaultBuild(HttpServletResponse response) throws Exception {
List<ArtCrowd> dataList = this.getDataList();
Workbook workbook = DefaultExcelBuilder.of(ArtCrowd.class)
.build(dataList);
AttachmentExportUtil.export(workbook, "艺术生信息", response);
// 加密导出 AttachmentExportUtil.encryptExport(workbook, "艺术生信息", response,"123456");
}
// 数据获取
private List<ArtCrowd> getDataList() {
List<ArtCrowd> dataList = new ArrayList<>(1000);
for (int i = 0; i < 1000; i++) {
ArtCrowd artCrowd = new ArtCrowd();
if (i % 2 == 0) {
artCrowd.setName("张三");
artCrowd.setAge(19);
artCrowd.setGender("Man");
artCrowd.setPaintingLevel("一级证书");
artCrowd.setDance(false);
artCrowd.setAssessmentTime(LocalDateTime.now());
artCrowd.setHobby("摔跤");
} else {
artCrowd.setName("李四");
artCrowd.setAge(18);
artCrowd.setGender("Woman");
artCrowd.setPaintingLevel("一级证书");
artCrowd.setDance(true);
artCrowd.setAssessmentTime(LocalDateTime.now());
artCrowd.setHobby("钓鱼");
}
dataList.add(artCrowd);
}
return dataList;
}
public class People {
@ExcelColumn(order = 1, title = "姓名",groups = People.class)
private String name;
@ExcelColumn(order = 2, title = "年龄")
private Integer age;
@ExcelColumn(order = 3, title = "性别")
private String gender;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
}
@ExcelTable(sheetName = "艺术生")
public class ArtCrowd extends People {
@ExcelColumn(order = 4,groups = String.class)
private String paintingLevel;
@ExcelColumn(order = 5, title = "是否会跳舞", groups = {People.class})
private boolean dance;
@ExcelColumn(order = 6, title = "考核时间", dateFormatPattern = "yyyy-MM-dd HH:mm:ss", groups = {People.class, String.class})
private LocalDateTime assessmentTime;
@ExcludeColumn
private String hobby;
public String getPaintingLevel() {
return paintingLevel;
}
public void setPaintingLevel(String paintingLevel) {
this.paintingLevel = paintingLevel;
}
public boolean isDance() {
return dance;
}
public void setDance(boolean dance) {
this.dance = dance;
}
public LocalDateTime getAssessmentTime() {
return assessmentTime;
}
public void setAssessmentTime(LocalDateTime assessmentTime) {
this.assessmentTime = assessmentTime;
}
public String getHobby() {
return hobby;
}
public void setHobby(String hobby) {
this.hobby = hobby;
}
}
导出使用注解
- @ExcelTable(includeAllField,excludeParent,workbookType,sheetName,rowAccessWindowSize,useFieldNameAsTitle,defaultValue)
- @ExcludeColumn
- @ExcelColumn(title,order,dateFormatPattern,groups,defaultValue)
对应注解详情请见:注解
-
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
样式支持 - 添加水印
- 按列读取
- 单元格斜线绘制
- 设置批注
- 版本日志