前言
做OA管理系统的时候,刚好有个需求:根据指定条件从MYSQL数据库获取列表,将列表生成Excel,并直接下载到本地
工具及插件
项目框架:SpringBoot + Mybatis + MySQL
第三方插件:Lombok
项目引用的是Apache poi生成EXCEL文件
最终导出结果会是这样的,如图:
一、前端调用
$("#button").click(function(){
let params = let params = "?city = '北京'&street = '西长安街'";
window.location.href = "http://127.0.0.1:8080/excel/exportExcel" + params;
});
二、后端接口
代码中引用了lombok插件,直接使用注解的方式
Result类 是我自己封装的一个返回结果类
Maven
<!-- poi -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.17</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.17</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-scratchpad</artifactId>
<version>3.17</version>
</dependency>
控制层Controller
import javax.servlet.http.HttpServletResponse;
import java.util.Map;
@RestController
@RequestMapping("excel")
public class ExcelController {
@Autowired
private ExcelService excelService;
/**
* 批量导出
*/
@RequestMap