使用EasyExcel实现简单的导出功能
这里是在springboot项目下使用EasyExcel实现简单导出功能,确实很简单, 只需要几步:
1.引入依赖:
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>3.1.1</version>
</dependency>
2.要导出的实体类添加关键注解 @ExcelProperty
public class UserEntity implements Serializable {
/**
* 主键
*/
@ExcelIgnore
private Long id;
/**
* 姓名
*/
@ExcelProperty("姓名")
@ColumnWidth(20)
private String name;
/**
* 性别
*/
@ExcelProperty("性别")
@ColumnWidth(20)
private String sex;
}
3.设置返回头信息,用输出流返回
public void exportUser(HttpServletResponse response, UserQuery query) {
setExcelRespProp(response,"xxx列表");
List<UserEntity> userList = userMapper.selectUser(query);
try {
EasyExcel.write(response.getOutputStream())
.head(UserEntity.class)
.excelType(ExcelTypeEnum.XLSX)
.sheet("xxx")
.doWrite(userList);
}catch (IOException e){
e.printStackTrace();
LOGGER.info("导出xxx列表出错");
}
}
private void setExcelRespProp(HttpServletResponse response, String rawFileName) {
response.setContentType("application/vnd.ms-excel");
response.setCharacterEncoding("utf-8");
//String fileName = URLEncoder.encode(rawFileName, "UTF-8").replaceAll("\\+", "%20");
response.setHeader("Content-Disposition", "attachment;filename=" + rawFileName + ".xlsx");
}
以上三步就把一个最简单的导出功能实现了
注意返回值类型为void,这里直接使用response输出流返回