springboot 根据mybatisplus 分页查询数据导出Excle
时间: 2023-08-26 07:04:56 浏览: 141
可以使用 EasyExcel 这个开源框架轻松实现导出 Excel。下面是一个示例代码:
1. 添加依赖
在 pom.xml 文件中添加 EasyExcel 和 MyBatis Plus 的依赖:
```xml
<!-- EasyExcel -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>2.3.0</version>
</dependency>
<!-- MyBatis Plus -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.0</version>
</dependency>
```
2. 编写导出服务
```java
@Service
public class ExportService {
@Autowired
private MybatisPlusMapper mybatisPlusMapper;
public void exportExcel() {
// 分页查询数据
Page<User> page = new Page<>(1, 100);
IPage<User> userPage = mybatisPlusMapper.selectPage(page, null);
// 将数据转换为 Excel 数据
List<UserExcel> userExcelList = userPage.getRecords().stream()
.map(user -> new UserExcel(user.getId(), user.getName(), user.getAge()))
.collect(Collectors.toList());
// 导出 Excel
try (OutputStream out = new FileOutputStream("user.xlsx")) {
// 写入 Excel 文件
EasyExcel.write(out, UserExcel.class).sheet("用户信息").doWrite(userExcelList);
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
其中,`MybatisPlusMapper` 是 MyBatis Plus 自动生成的 Mapper 接口,用于操作数据库。`User` 是实体类,`UserExcel` 是用于导出 Excel 的数据类,两者的字段需要一一对应。
3. 编写 Excel 数据类
```java
@Data
@AllArgsConstructor
public class UserExcel {
@ExcelProperty("ID")
private Integer id;
@ExcelProperty("姓名")
private String name;
@ExcelProperty("年龄")
private Integer age;
}
```
4. 调用导出服务
在需要导出 Excel 的地方调用 `ExportService.exportExcel()` 方法即可。
以上是一个简单的示例,你可以根据实际情况进行修改和扩展。
阅读全文