一、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 表示一個集合,主要針對一對多的導出,比如一個老師對應(yīng)多個科目,科目就可以用集合表示
- @ExcelEntity 表示一個繼續(xù)深入導出的實體,但他沒有太多的實際意義,只是告訴系統(tǒng)這個對象里面同樣有導出的字段
- @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();
}