springboot easyExcel 导入数据并检验入库
时间: 2023-10-25 09:28:00 浏览: 125
好的,下面是一个简单的示例代码,演示如何使用EasyExcel导入数据并进行校验入库,具体实现过程如下:
1.引入EasyExcel和Spring Boot依赖
在pom.xml文件中加入如下依赖:
```xml
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>2.3.0</version>
</dependency>
```
2.编写Excel实体类
```java
@Data
public class UserDto {
@ExcelProperty(value = "姓名", index = 0)
private String name;
@ExcelProperty(value = "年龄", index = 1)
private Integer age;
@ExcelProperty(value = "性别", index = 2)
private String gender;
}
```
3.编写Excel导入接口
```java
@PostMapping("/import")
public String importExcel(@RequestParam("file") MultipartFile file) {
if (file.isEmpty()) {
return "上传文件不能为空";
}
try {
List<UserDto> userList = EasyExcel.read(file.getInputStream()).head(UserDto.class).sheet().doReadSync();
List<String> errorList = new ArrayList<>();
for (UserDto user : userList) {
//数据校验
if (StringUtils.isEmpty(user.getName())) {
errorList.add("姓名不能为空");
}
if (user.getAge() == null) {
errorList.add("年龄不能为空");
}
if (StringUtils.isEmpty(user.getGender())) {
errorList.add("性别不能为空");
}
//将合法数据插入数据库
if (errorList.isEmpty()) {
userService.insertUser(user);
}
}
if (!errorList.isEmpty()) {
return "导入失败,错误信息:" + errorList.toString();
}
return "导入成功";
} catch (IOException e) {
e.printStackTrace();
return "导入失败";
}
}
```
4.编写数据校验和入库逻辑
这里使用了一个`errorList`来存储校验失败的信息,如果`errorList`不为空,则导入失败并返回错误信息。如果`errorList`为空,则将合法的数据插入数据库中。
```java
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public void insertUser(UserDto user) {
User entity = new User();
entity.setName(user.getName());
entity.setAge(user.getAge());
entity.setGender(user.getGender());
userMapper.insert(entity);
}
}
```
以上就是一个简单的EasyExcel导入数据并检验入库的示例代码,希望对您有所帮助。
阅读全文