1.使用背景
最近笔者的代码涉及到了excel的导出
一开始笔者是直接原生使用poi,自己书写导出规则,
毫无疑问,是利用反射机制书写的,但有时总不可避免有些新的导出规则需要书写
后来接触到了easypoi,发现其确实好用;
2.使用方式
2.1.需要导出的实体类
package org.example.pojo;
import cn.afterturn.easypoi.excel.annotation.Excel;
import cn.afterturn.easypoi.excel.annotation.ExcelTarget;
import javax.persistence.*;
import java.time.LocalDateTime;
@ExcelTarget("student")
@Table(name = "student")
@Entity
public class Student {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Excel(name = "id",needMerge = true)
private Integer id;
@Column(name = "name")
@Excel(name = "姓名", orderNum = "1", needMerge = true)
private String name;
@Column(name = "student_number")
@Excel(name = "学号", orderNum = "2", needMerge = true)
private String studentNumber;
@Column(name = "create_time")
@Excel(name = "创建时间",orderNum = "3",needMerge = true)
private LocalDateTime createTime;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getStudentNumber() {
return studentNumber;
}
public void setStudentNumber(String studentNumber) {
this.studentNumber = studentNumber;
}
public LocalDateTime getCreateTime() {
return createTime;
}
public void setCreateTime(LocalDateTime createTime) {
this.createTime = createTime;
}
}
2.2.2.导出
@Test
public void easypoiTest() throws IOException {
ExportParams exportParams = new ExportParams("用户列表", "用户信息", ExcelType.XSSF);
// exportParams.setAddIndex(true);
List<Student> students = studentDao.findAll();
try (Workbook workbook = ExcelExportUtil.exportExcel(exportParams, Student.class, students);
DataOutputStream dataOutputStream = new DataOutputStream(new FileOutputStream("./test.xlsx"))) {
workbook.write(dataOutputStream);
}
}