前言:本篇博客读写Excel使用的是EasyExcel,EasyExcel是一个基于Java的简单、省内存的读写Excel的开源项目。详细了解和使用请参考官方文档:
一、Excel示例
二、代码实现
1、引入依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyExcel</artifactId>
<version>2.2.7</version>
</dependency>
2、创建对象
import lombok.Data;
import com.alibaba.excel.annotation.ExcelProperty;
@Data
public class UserExcel {
@ExcelProperty(value = "用户名", index = 0)
private String name;
@ExcelProperty(value = "登录名", index = 1)
private String loginName;
@ExcelProperty(value = "用户密码", index = 2)
private String loginPassword;
}
3、读写Excel
/**
* 批量导入用户信息
*/
@Override
public void batchInsert(MultipartFile file) throws IOException {
List<User> users = new ArrayList<>();
List<UserExcel> userExcels = new ArrayList<>();
// 读excel
EasyExcel.read(file.getInputStream(), UserExcel.class, new AnalysisEventListener<UserExcel>() {
@Override
public void invoke(UserExcel userExcel, AnalysisContext analysisContext) {
User user = new User();
BeanUtils.copyProperties(userExcel, user);
users.add(user);
userExcels.add(userExcel);
}
@Override
public void doAfterAllAnalysed(AnalysisContext analysisContext) {
// 存储到数据库中
users.forEach(user -> baseMapper.insert(user));
System.out.println("excel文件读取完毕!");
}
}).sheet().doRead();;
// 写excel
EasyExcel.write(new File("D://输入用户信息.xlsx"), UserExcel.class).sheet().doWrite(userExcels);
4、写Excel成功示例
路漫漫其修远兮,吾将上下而求索
译文:在追寻真理方面,前方的道路还很漫长,但我将百折不挠,不遗余力地去追求和探索。
如果您有什么好的想法与方法,欢迎评论区留言,我们一起讨论~