写个一个用easyexcel导出的demo
时间: 2023-09-15 09:15:28 浏览: 81
好的,下面是一个使用 EasyExcel 进行导出的 Demo。
首先需要在 pom.xml 中添加 EasyExcel 的依赖:
```xml
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>2.3.0</version>
</dependency>
```
接着,在需要进行导出的方法中,使用 EasyExcel 进行数据的写入:
```java
public void exportData(HttpServletResponse response) throws IOException {
// 模拟数据
List<User> userList = new ArrayList<>();
userList.add(new User(1L, "Tom", 18));
userList.add(new User(2L, "Jerry", 20));
userList.add(new User(3L, "Lucy", 22));
// 设置响应头
response.setContentType("application/vnd.ms-excel");
response.setCharacterEncoding("utf-8");
response.setHeader("Content-disposition", "attachment;filename=user.xlsx");
// 创建 ExcelWriter 对象
OutputStream outputStream = response.getOutputStream();
ExcelWriter writer = new ExcelWriter(outputStream, ExcelTypeEnum.XLSX);
// 创建 Sheet 对象
Sheet sheet = new Sheet(1, 0, User.class);
// 写入数据
writer.write(userList, sheet);
// 关闭资源
writer.finish();
outputStream.flush();
}
```
以上代码中,我们首先模拟了一个用户列表的数据,并设置了响应头和文件名。接着,我们创建了一个 ExcelWriter 对象,并指定输出流和 Excel 的类型。然后,我们创建了一个 Sheet 对象,并指定了 Sheet 的编号、起始行索引和实体类类型。最后,我们调用 writer.write() 方法将数据写入到 Excel 中,并关闭资源。
需要注意的是,User 类需要添加 @ExcelProperty 注解来指定表头信息,例如:
```java
@Data
@NoArgsConstructor
@AllArgsConstructor
public class User {
@ExcelProperty(value = "ID", index = 0)
private Long id;
@ExcelProperty(value = "姓名", index = 1)
private String name;
@ExcelProperty(value = "年龄", index = 2)
private Integer age;
}
```
以上就是一个使用 EasyExcel 进行导出的简单示例。
阅读全文