上篇写了Excel如何导出,那么其实在提供的那几个工具类中已经有了导入的方法,只需要直接调用即可。下面我们来简单演示一下,如何导入。
我们先看下Controller是如何写的
@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()方法是如何写的
/**
* 读取某个 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();
}
在底层的方法我就不贴出来了,我大家可在()文章里面找到需要的工具类,我们就直接看下运行结果。
导出结果
那么数据都已经打印出来了,那么存入数据库就超级简单了。