EasyExecl导入

监听器

package com.gislife.common.config;

import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;

import java.util.ArrayList;
import java.util.List;

/***
 *  监听器
 */
public class ExcelModelListener extends AnalysisEventListener {

    /**
     * 每隔5条存储数据库,实际使用中可以3000条,然后清理list ,方便内存回收
     */
    private static final int BATCH_COUNT = 1    ;
    List<Object> list = new ArrayList<Object>();
    private static int count = 0;

    @Override
    public void invoke(Object data, AnalysisContext analysisContext) {
        System.out.println("解析到一条数据:{ "+ data.toString() +" }");
        list.add( data);
//        HSSFDateUtil.getJavaDate(Double.parseDouble())
        count ++;
        if (list.size() >= BATCH_COUNT) {
            saveData( count );
            list.clear();
        }
    }

    @Override
    public void doAfterAllAnalysed(AnalysisContext context) {
//        saveData( count );
        System.out.println("一张表的数据解析完成!");
//        System.out.println(" count :" + count);
    }

    /**
     * 加上存储数据库
     */
    private void saveData(int count) {
        System.out.println("{ "+ count +" }条数据,开始存储数据库!" + list.size());
        System.out.println("存储数据库成功!");
    }

}

实现类

 @Override
    public Result excelImport(MultipartFile file)  {
         Result pResult = new Result();
        try {

            InputStream inputStream = file.getInputStream();
            //dStepEntity.class这个是实体类
            // new ExcelModelListener()这个是new的监听
            List<Object> list1 = EasyExcel.read(inputStream, CdStepEntity.class,  new ExcelModelListener()).doReadAllSync();
            //打印下
            System.out.println(list1.toArray());
        }catch (Exception ex){
            pResult.setCode(-1);
            pResult.setMsg(ex.getMessage());
        }
         return pResult;
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值