java使用easyexcel导出动态数据为excel文件springboot代码
时间: 2023-08-02 10:03:01 浏览: 290
利用easyExcel导出上万条数据,自定义策略合并单元格
在Spring Boot中使用EasyExcel导出动态数据为Excel文件的代码如下:
1. 首先,我们需要导入`easyexcel`的依赖。在`pom.xml`文件中添加以下依赖:
```xml
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>2.3.0</version>
</dependency>
```
2. 创建一个Excel工具类,用于导出Excel文件。假设我们已经有一个名为`ExcelUtil`的工具类。
```java
import com.alibaba.excel.EasyExcel;
import org.springframework.stereotype.Component;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.InputStream;
import java.net.URLEncoder;
import java.util.List;
@Component
public class ExcelUtil {
public void export(HttpServletResponse response, List<Object> data) throws IOException {
// 设置响应头信息
response.setContentType("application/vnd.ms-excel");
response.setCharacterEncoding("utf-8");
String fileName = URLEncoder.encode("导出文件", "UTF-8");
response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx");
// 导出Excel文件
EasyExcel.write(response.getOutputStream(), Object.class).sheet("Sheet1").doWrite(data);
}
public void exportTemplate(HttpServletResponse response) throws IOException {
// 设置响应头信息
response.setContentType("application/vnd.ms-excel");
response.setCharacterEncoding("utf-8");
String fileName = URLEncoder.encode("模板文件", "UTF-8");
response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx");
// 导出模板文件
InputStream inputStream = getClass().getClassLoader().getResourceAsStream("template.xlsx");
EasyExcel.write(response.getOutputStream()).withTemplate(inputStream).sheet().doWrite(null);
}
}
```
3. 创建一个Controller类,用于处理导出Excel的请求。
```java
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
@RestController
@RequestMapping("/excel")
public class ExcelController {
@Autowired
private ExcelUtil excelUtil;
@GetMapping("/export")
public void exportExcel(HttpServletResponse response) throws IOException {
// 模拟动态数据,实际场景中可以根据业务需求获取数据
List<Object> data = new ArrayList<>();
data.add("数据1");
data.add("数据2");
data.add("数据3");
// 导出Excel文件
excelUtil.export(response, data);
}
@GetMapping("/template")
public void exportTemplate(HttpServletResponse response) throws IOException {
// 导出Excel模板文件
excelUtil.exportTemplate(response);
}
}
```
以上代码演示了使用Spring Boot和EasyExcel导出动态数据为Excel文件的过程。在Controller中,我们可以根据实际业务需求获取数据,并调用`ExcelUtil`中的方法实现导出操作。同时,我们也提供了导出Excel模板文件的方法,以方便用户进行数据录入。
阅读全文