easyexcel的简单使用

54 篇文章 1 订阅

easyexcel 文档地址:https://alibaba-easyexcel.github.io/

使用依赖

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>easyexcel</artifactId>
            <version>2.2.7</version>
        </dependency>

测试实体类

@Data
public class ExcelModul implements Serializable {

    @ExcelProperty("name")
    private String nam;

    @ExcelProperty("time")
    private String ag;

    @ExcelProperty("生日")
    private Date birthday;

    @ExcelProperty("e")
    private String e;
}

service 层

public interface ExcelModulService {

   int insertExcelModuls(List<ExcelModul> em);

}

@Service
public class ExcelModulServiceImpl implements ExcelModulService {

    @Override
    public int insertExcelModuls(List<ExcelModul> em) {

        em.forEach(e -> System.out.println(e.toString()));

        return 0;
    }
}

设置监听器

public class ExcelListener extends AnalysisEventListener<ExcelModul> {

    private ExcelModulService ems;

    public ExcelListener(ExcelModulService ems) {
        this.ems = ems;
    }

    List<ExcelModul> datas = new ArrayList<>();

    @Override
    public void invoke(ExcelModul excelModul, AnalysisContext analysisContext) {
        datas.add(excelModul);
        if (datas.size() >= 10) {
            saveData();
            datas.clear();
        }
    }

    @Override
    public void doAfterAllAnalysed(AnalysisContext analysisContext) {
        saveData();
        datas.clear();
    }

    private void saveData() {
        ems.insertExcelModuls(datas);
    }
}

controller 上传文件

@RestController
public class ExcelController {

    @Autowired
    private ExcelModulService ems;

    @PostMapping("/upload")
    public String upload(@RequestParam("file") MultipartFile file) throws IOException {
        EasyExcel
                .read(file.getInputStream(),
                        ExcelModul.class,
                        new ExcelListener(ems))
                .sheet().doRead();
        return "success";
    }
}

测试文件
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值