使用easyExcel编写导出excel文件
时间: 2024-01-16 18:51:09 浏览: 106
演示通过easyExcel来导出excel数据
1. 引入easyExcel依赖
在pom.xml文件中添加以下依赖:
```
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>2.2.9</version>
</dependency>
```
2. 编写导出excel的实体类
例如,我们要导出一个学生信息表格,那么我们可以定义一个Student类来表示学生信息,如下所示:
```
public class Student {
private String name; // 姓名
private int age; // 年龄
private String gender; // 性别
private String major; // 专业
// 省略getter和setter方法
}
```
3. 编写导出excel的服务类
我们可以定义一个ExcelService类来实现导出excel文件的功能,例如:
```
@Service
public class ExcelService {
public void export(List<Student> studentList, HttpServletResponse response) throws IOException {
OutputStream out = response.getOutputStream();
try {
response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode("学生信息表.xlsx", "UTF-8"));
response.setContentType("application/vnd.ms-excel;charset=UTF-8");
ExcelWriter writer = EasyExcelFactory.getWriter(out);
Sheet sheet = new Sheet(1, 0, Student.class);
sheet.setSheetName("学生信息表");
writer.write(studentList, sheet);
writer.finish();
} finally {
out.close();
}
}
}
```
在这个服务类中,我们定义了一个export方法来实现导出excel文件的功能。它接受一个学生信息列表和一个HttpServletResponse对象作为参数,其中HttpServletResponse对象用于设置响应头和输出流。
在方法中,我们首先获取输出流,然后设置响应头和响应类型。接着,我们使用EasyExcelFactory的getWriter方法获取一个ExcelWriter对象,并创建一个Sheet对象来表示Excel中的一个表格。我们将学生信息列表和Sheet对象传给ExcelWriter的write方法来写入数据,最后调用ExcelWriter的finish方法来完成导出操作。
4. 调用导出excel的服务方法
我们可以在Controller中调用ExcelService的export方法来实现导出excel文件的功能,例如:
```
@RestController
public class ExcelController {
@Autowired
private ExcelService excelService;
@GetMapping("/export")
public void export(HttpServletResponse response) throws IOException {
List<Student> studentList = new ArrayList<>();
studentList.add(new Student("张三", 18, "男", "计算机科学与技术"));
studentList.add(new Student("李四", 19, "女", "软件工程"));
studentList.add(new Student("王五", 20, "男", "信息安全"));
excelService.export(studentList, response);
}
}
```
在这个Controller中,我们定义了一个export方法来处理导出excel文件的请求。它调用了ExcelService的export方法来实现导出操作,并将学生信息列表和HttpServletResponse对象作为参数传递给ExcelService的export方法。
5. 测试导出excel文件的功能
我们可以启动应用程序,并在浏览器中访问http://localhost:8080/export来测试导出excel文件的功能。当我们点击链接时,浏览器会下载一个名为“学生信息表.xlsx”的excel文件,其中包含了我们之前定义的学生信息。
阅读全文