实现步骤
1.添加依赖
注意版本一致,3.0以下版本可能会有问题
<!--导入导出excel-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>3.0.5</version>
</dependency>
2.导入工具类
package com.topevery.pss.utils;
import com.alibaba.excel.EasyExcel;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.net.URLEncoder;
import java.util.List;
/**
* @Author: lisenlin
* @date: 2022/4/13 10:43
*/
public class ExcelExportUtils {
public static void download(HttpServletResponse response, Class t, List list) throws IOException, IllegalAccessException,InstantiationException {
response.setContentType("application/vnd.ms-excel;charset=utf-8");// 设置文本内省
// response.setCharacterEncoding("utf-8");// 设置字符编码
String fileName = URLEncoder.encode("市政设施信息表", "utf-8");
response.setHeader("Content-disposition", "attachment;filename" + fileName+".xlsx"); // 设置响应头
EasyExcel.write(response.getOutputStream(), t).sheet("市政设施信息表").doWrite(list); //用io流来写入数据
// EasyExcel.write("D:/test3.xlsx", t).sheet("模板").doWrite(list);
}
}
3. Controller层代码实现
/**
* 导出excel
*/
@GetMapping("/exportExcel")
@ApiOperation(value = "exportExcel", notes = "导出")
public Result<String> exportExcel(HttpServletResponse response) throws IOException, IllegalAccessException, InstantiationException {
/*
获取你要导出的实体列表
exportList: 获取实体列表,返回值为实体类集合。
*/
List<UrbanFacilityManageModel> list = urbanFacilityManageService.exportList();
/*
调用工具类实现导出
UrbanFacilityManageModel: 你的实体类。
*/
ExcelExportUtils.download(response,UrbanFacilityManageModel.class,list);
return ResultUtils.ok("success");
}