springboot实现上传excel保存数据到数据库
springboot实现上传excel保存数据到数据库
·
springboot实现上传excel保存数据到数据库
先看数据库数据(主键自增,时间自动填充当前时间)
一、导入依赖
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.22</version>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.2.2</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.28</version>
</dependency>
<--导入hutool-->
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.7.18</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.1.2</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
二、实体类
import java.util.Date;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class User {
private Integer id;
private String username;
private String password;
private String nickname;
private String email;
private String phone;
private String address;
private Date createTime;
private String avatarUrl;
}
三、上传的模板
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MW5bMMiC-1659176326068)(功能二_springboot上传excel保存数据到数据库.assets/1659175591159.png)]
三、controller层
@PostMapping("/import")
public Result imp(MultipartFile file) throws IOException {
InputStream inputStream = file.getInputStream();
ExcelReader reader = ExcelUtil.getReader(inputStream);
//第一种方法表头要是和javabean的一样 必须是英文
// List<User> list = reader.readAll(User.class);
// userService.saveBatch(list);
//第二种方法
List<List<Object>> list = reader.read(1);
ArrayList<User> users = CollUtil.newArrayList();
for(List<Object> row:list){
User user = new User();
user.setUsername(row.get(0).toString());
user.setPassword(row.get(1).toString());
user.setNickname(row.get(2).toString());
user.setEmail(row.get(3).toString());
user.setPhone(row.get(4).toString());
user.setAddress(row.get(5).toString());
user.setAvatarUrl(row.get(6).toString());
users.add(user);
}
//已经把excel数据赋值到users上 此时就可以插入数据库
//这里省略插入数据库
return Result.success(true);
}
四、测试结果
更多推荐
已为社区贡献1条内容
所有评论(0)