一、EsayPOI的介绍
easypoi 功能如同名字easy,主打的功能就是容易。让一个没见接触过poi的人员就可以方便的写出Excel导出,Excel导出,Excel导入,Word模板导出,通过简单的注解和模板语言(熟悉的表达式语法),完成以前复杂的写法
二、EsayPOI引入依赖并配置
1.引入依赖
<!--引入EasyPOI-->
<dependency>
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-base</artifactId>
<version>3.0.3</version>
</dependency>
<dependency>
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-web</artifactId>
<version>3.0.3</version>
</dependency>
<dependency>
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-annotation</artifactId>
<version>3.0.3</version>
</dependency>
2.引入依赖
- @Excel 作用到filed上面,是对Excel一列的一个描述
- @ExcelCollection 表示一个集合,主要针对一对多的导出,比如一个老师对应多个科目,科目就可以用集合表示
- @ExcelEntity 表示一个继续深入导出的实体,但他没有太多的实际意义,只是告诉系统这个对象里面同样有导出的字段
- @ExcelIgnore 和名字一样表示这个字段被忽略跳过这个导导出
- @ExcelTarget 这个是作用于最外层的对象,描述这个对象的id,以便支持一个对象可以针对不同导出做出不同处理
public class StudentEntity implements java.io.Serializable {
/** id*/
private String id;
/** 学生姓名*/
@Excel(name = "学生姓名", height = 20, width = 30, isImportField = "true_st")
private String name;
/**学生性别*/
@Excel(name = "学生性别", replace = { "男_1", "女_2" }, suffix = "生", isImportField = "true_st")
private int sex;
@Excel(name = "出生日期", databaseFormat = "yyyyMMddHHmmss", format = "yyyy-MM-dd", isImportField = "true_st", width = 20)
private Date birthday;
@Excel(name = "进校日期", databaseFormat = "yyyyMMddHHmmss", format = "yyyy-MM-dd")
private Date registrationDate;
}
样例如下所示:
3.导出的Java代码
FileOutputStream fos = null;
try (Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams("2412312", "测试", "测试"), Area.class, list)) {
fos = new FileOutputStream("G:/ExcelExportHasImgTest.exportCompanyImg.xls");
workbook.write(fos);
}catch (IOException e){
e.printStackTrace();
}finally {
fos.close();
}