用easyexcel写一个动态导出excel文件
时间: 2023-08-23 07:06:57 浏览: 94
好的,以下是一个简单的示例代码,可以动态地根据数据生成Excel文件并导出:
```java
// 1. 创建Excel对象
ExcelWriter writer = new ExcelWriter(response.getOutputStream(), ExcelTypeEnum.XLSX);
// 2. 创建Sheet对象
Sheet sheet = new Sheet(1, 0, YourEntity.class.getSimpleName());
// 3. 设置表头行
List<List<String>> head = new ArrayList<>();
head.add(Arrays.asList("姓名", "年龄", "性别"));
sheet.setHead(head);
// 4. 查询数据,并将其转换为Excel所需的List<List<Object>>格式
List<YourEntity> data = yourService.getData();
List<List<Object>> dataList = new ArrayList<>();
for (YourEntity entity : data) {
List<Object> row = new ArrayList<>();
row.add(entity.getName());
row.add(entity.getAge());
row.add(entity.getGender());
dataList.add(row);
}
// 5. 写入数据
writer.write0(dataList, sheet);
// 6. 关闭Excel对象
writer.finish();
```
其中,`YourEntity` 表示你的实体类,`yourService.getData()` 是你的业务方法,返回一个包含数据的列表。
这段代码使用了阿里巴巴的 EasyExcel 库,可以在 Maven 中添加以下依赖来使用:
```xml
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>2.2.6</version>
</dependency>
```
需要注意的是,上述代码中的 `response` 是 HttpServletResponse 对象,用于向客户端发送 Excel 文件。如果你是在 Spring MVC 或 Spring Boot 中使用,可以在控制器方法中添加一个 `HttpServletResponse` 参数,然后将其传递给上述代码即可。
阅读全文