1、配置文件准备
1.1 pom.xml 导入EasyExcel 依赖包
<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.9</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>1.1.1</version>
</dependency>
1.2 配置i18n 国际化文件
在resources 目录下,点击右键-->new --> Resource Bundle 创建国际化文件,如下图所示:
1.3 在yml 文件中配置国际化文件地址messages: 和 需要导出的excel文件头的国际化key
二、编写excel 配置文件
2.1 构造导出对象
import com.alibaba.excel.metadata.BaseRowModel;
import lombok.Data;
import org.apache.commons.lang3.ObjectUtils;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
public class EasyExcelParams {
/**
* excel文件名(不带拓展名)
*/
private String excelNameWithoutExt;
/**
* sheet名称
*/
private String sheetName ="sheet1";
/**
* 是否需要表头
*/
private boolean needHead = true;
/**
* 数据
*/
private List<? extends BaseRowModel> data;
/**
* 数据模型类型
*/
private Class<? extends BaseRowModel> dataModelClazz;
/**
* 响应
*/
private HttpServletResponse response;
public EasyExcelParams(String excelNameWithoutExt, String sheetName, List<? extends BaseRowModel> data, Class<? extends BaseRowModel> dataModelClazz, HttpServletResponse response ){
this.excelNameWithoutExt = excelNameWithoutExt;
this.sheetName = sheetName;
this.data = data;
this.dataModelClazz = dataModelClazz;
this.response = response;
}
public EasyExcelParams(String excelNameWithoutExt, List<? extends BaseRowModel> data, Class<? extends BaseRowModel> dataModelClazz, HttpServletResponse response ){
this.excelNameWithoutExt = excelNameWithoutExt;
this.data = data;
this.dataModelClazz = dataModelClazz;
this.response = response;
}
/**
* 检查不允许为空的属性
*/
public boolean isValid() {
return ObjectUtils.allNotNull(excelNameWithoutExt, data, dataModelClazz, response);
}
public String getExcelNameWithoutExt() {
return excelNameWithoutExt;
}
public void setExcelNameWithoutExt(String excelNameWithoutExt) {
this.excelNameWithoutExt = excelNameWithoutExt;
}
public String getSheetName() {
return sheetName;
}
public void setSheetName(String sheetName) {
this.sheetName = sheetName;
}
public boolean isNeedHead() {
return needHead;
}
public void setNeedHead(boolean needHead) {
this.needHead = needHead;
}
public List<? extends BaseRowModel> g