easyexcel 读取

@Data
public class importUserPj  extends BaseRowModel {

    @ExcelProperty(value = "工号",index = 0)
    @NumberFormat(value = "0")
    private String jobCode;

    @ExcelProperty(index = 1)
    private String nickName;

    @ExcelProperty(index =2)
    private String joinTimeStr;

    @ExcelProperty(index =3)
    private String xueLi;
    @ExcelProperty(index =4)
    private String ziGe;
    @ExcelProperty(index =5)
    private String zhiWu;

}

/**
 * 解析监听器,
 * 每解析一行会回调invoke()方法。
 * 整个excel解析结束会执行doAfterAllAnalysed()方法
 */
@Slf4j
@Data
@NoArgsConstructor
@AllArgsConstructor
public class ExcelListener<T> extends AnalysisEventListener<T> {

    /**
     * 自定义存储表格数据
     */
    private List<T> dataList = new ArrayList<>();
    /**
     * 自定义存储标题结果
     */
    private T titleMap;


    @Override
    public void invoke(T result, AnalysisContext context) {
        //获取当前行号
        Integer rowIndex = context.readRowHolder().getRowIndex();
        if (rowIndex == 0) {
            this.titleMap = result;
        } else {
            //数据存储到list,供批量处理,或后续自己业务逻辑处理。
            if (result instanceof QuestionsExcelData) {
                // 校验等等
            }
            dataList.add(result);
        }
        log.info("解析数据第{}行,数据为:{}", rowIndex, result);
    }

    @Override
    public void doAfterAllAnalysed(AnalysisContext analysisContext) {
        // list.clear();//解析结束销毁不用的资源
        // 处理业务数据插入表 还是校验等等
        log.info("解析完成!");
    }

}
@RestController
@RequestMapping("/system/user")
public class importUser {


    @PostMapping("/importData")
    public BaseResult importu(MultipartFile file, boolean updateSupport) throws IOException {
        InputStream inputStream = file.getInputStream();
        //实例化实现了AnalysisEventListener接口的类
        ExcelListener listener = new ExcelListener();
        //传入参数
        ExcelReader excelReader = new ExcelReader(inputStream, ExcelTypeEnum.XLS, null, listener);
        //读取信息
        excelReader.read(new Sheet(2, 1, importUserPj.class));
//        excelReader.read(new Sheet(3, 1, importUserPj.class));
//        excelReader.read(new Sheet(4, 1, importUserPj.class));
//        excelReader.read(new Sheet(5, 1, importUserPj.class));

        //获取数据
        List<importUserPj> list = listener.getDataList();



        return null;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值