SpringBoot整合easyexcel实现Excel导入

2019-11-23 17:50:13 浏览数 (1)

上篇《SpringBoot整合easyexcel实现Excel的导出》写了Excel如何导出,那么其实在提供的那几个工具类中已经有了导入的方法,只需要直接调用即可。下面我们来简单演示一下,如何导入。我们先看下Controller是如何写的

代码语言:javascript复制
@PostMapping("/import/order")
public ResultMsg import_order(MultipartFile excel) {

    Object objList = ExcelUtil.readExcel(excel, new OrderExcelBO(), 1, 1);

    if (objList == null) {
        return ResultMsg.fail(500, "导入的数据不能为空");
    }

    List<OrderExcelBO> orderList = (List<OrderExcelBO>) objList;

    if (orderList == null || orderList.size() <= 0) {
        return ResultMsg.fail(500, "导入的数据不能为空");
    }

    orderList.forEach(System.out::println);

    return ResultMsg.success();
}

我们主要再看下readExcel()方法是如何写的

代码语言:javascript复制
/**
     * 读取某个 sheet 的 Excel
     *
     * @param excel       文件
     * @param rowModel    实体类映射,继承 BaseRowModel 类
     * @param sheetNo     sheet 的序号 从1开始
     * @param headLineNum 表头行数,默认为1
     * @return Excel 数据 list
     */
    public static List<Object> readExcel(MultipartFile excel, BaseRowModel rowModel, int sheetNo, int headLineNum) {
        ExcelListener excelListener = new ExcelListener();
        ExcelReader reader = getReader(excel, excelListener);

        if (reader == null) {
            return null;
        }

        reader.read(new Sheet(sheetNo, headLineNum, rowModel.getClass()));

        return excelListener.getDatas();
    }

在底层的方法我就不贴出来了,我大家可在()文章里面找到需要的工具类,我们就直接看下运行结果。

导出结果

那么数据都已经打印出来了,那么存入数据库就超级简单了。

0 人点赞