技术

EasyExcel使用(一):监听器

2021-07-22  本文已影响0人  b77f686a8725a

本文涉及:无

目录

EasyExcel目录

背景

公司在excel导入导出选择了EasyExcel框架弥补poi大量占用内存的缺陷。

解决方案

继承监听器AnalysisEventListener抽象类需要实现invoke、doAfterAllAnalysed、onException三个接口。

invoke
/**
     * When analysis one row trigger invoke function.
     *
     * @param data
     *            one row value. Is is same as {@link AnalysisContext#readRowHolder()}
     * @param context
     *            analysis context
     */
    void invoke(T data, AnalysisContext context);

invoke方法负责每一行解析后触发的函数,data是读取excel后转换的实体,context是整个上下文。
在这里我们我们可以对每一行导入数据进行校验。

doAfterAllAnalysed
    /**
     * if have something to do after all analysis
     *
     * @param context
     */
    void doAfterAllAnalysed(AnalysisContext context);

doAfterAllAnalysed方法负责所有行数都结束后触发的函数。
在这里我们可以对已经解析完毕的数据进行批量导入。

关于使用Mybatis-plus批量导入saveBatch性能问题看这里

onException
/**
     * All listeners receive this method when any one Listener does an error report. If an exception is thrown here, the
     * entire read will terminate.
     *
     * @param exception
     * @param context
     * @throws Exception
     */
    void onException(Exception exception, AnalysisContext context) throws Exception;

onException方法负责针对捕捉到异常的数据触发的函数。(如果在此抛出异常则停止读取)

后记

EasyExcel使用(二):公共监听器

上一篇 下一篇

猜你喜欢

热点阅读