//导入
@PostMapping("/importData")
public Result importData(MultipartFile file) {
//获取上传文件
categoryService.importData(file);
return Result.build(null, ResultCodeEnum.SUCCESS);
}
//导入
@Override
public void importData(MultipartFile file) {
//监听器
ExcelListener<CategoryExcelVo> excelListener = new ExcelListener(categoryMapper);
try {
EasyExcel.read(file.getInputStream(),CategoryExcelVo.class,excelListener).sheet().doRead();
} catch (IOException e) {
e.printStackTrace();
throw new GuiguException(ResultCodeEnum.DATA_ERROR);
}
}
EasyExcel: 这是 EasyExcel 库的入口类,它提供了用于读取和写入 Excel 文件的方法。
read(file.getInputStream(), CategoryExcelVo.class, excelListener): 这是读取 Excel 文件的方法调用。具体来说:
file.getInputStream(): 从传递的文件对象 (file) 中获取输入流,以便 EasyExcel 读取文件内容。
CategoryExcelVo.class: 指定 Excel 文件中每一行数据对应的 Java 对象的类型,即 CategoryExcelVo 类型。
excelListener: 作为参数传递给读取方法的监听器,用于处理读取到的 Excel 数据。
.sheet(): 这是指定读取 Excel 文件的哪个 sheet(工作表)。在这里,没有指定具体的 sheet 名称或索引,表示默认读取第一个 sheet。
.doRead(): 这是实际执行读取操作的方法。一旦调用了 doRead(),EasyExcel 就会开始解析 Excel 文件,将每一行的数据转换成指定的 Java 对象,并通过注册的监听器 excelListener 处理这些数据。
综合起来,这段代码的目的是使用 EasyExcel 读取 Excel 文件,将每一行的数据映射到 CategoryExcelVo 类型的对象,并通过传递的监听器 excelListener 处理这些数据。