使用Springboot和Mybatis和EasyExcel将Excel文件读入程序,将数据存储到数据库中,再从数据库里面读出数据,保存到Excel文件中进行下载
时间: 2024-05-09 09:18:48 浏览: 114
springboot整合easypoi实现浏览器自动下载excel文件,一行代码实现,附带完整项目和导出工具
1. 首先,我们需要添加以下依赖:
```xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.1</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>2.1.7</version>
</dependency>
```
2. 然后,我们需要创建一个实体类来保存Excel中的数据:
```java
@Data
public class User {
private Long id;
private String name;
private Integer age;
}
```
3. 接下来,我们需要创建一个Mapper类来处理数据库操作:
```java
@Mapper
public interface UserMapper {
@Insert("insert into user(name, age) values(#{name}, #{age})")
int insert(User user);
@Select("select * from user")
List<User> findAll();
}
```
4. 然后,我们需要创建一个Controller类来处理Excel文件的读取和保存:
```java
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
private UserMapper userMapper;
@PostMapping("/import")
public String importExcel(MultipartFile file) throws IOException {
// 读取Excel文件
InputStream inputStream = file.getInputStream();
List<User> userList = EasyExcel.read(inputStream).head(User.class).sheet().doReadSync();
// 将数据保存到数据库
for (User user : userList) {
userMapper.insert(user);
}
return "导入成功";
}
@GetMapping("/export")
public void exportExcel(HttpServletResponse response) throws IOException {
// 从数据库中读取数据
List<User> userList = userMapper.findAll();
// 将数据保存到Excel文件中
OutputStream outputStream = response.getOutputStream();
response.setContentType("application/vnd.ms-excel");
response.setHeader("Content-disposition", "attachment;filename=user.xlsx");
EasyExcel.write(outputStream, User.class).sheet().doWrite(userList);
}
}
```
5. 最后,我们需要在application.properties文件中配置数据库连接信息:
```properties
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8
spring.datasource.username=root
spring.datasource.password=root
```
完成以上步骤后,我们就可以通过访问/user/import接口来导入Excel文件中的数据,通过访问/user/export接口来将数据库中的数据导出到Excel文件中。
阅读全文