一、依赖
<easyexcel.version>3.3.4</easyexcel.version>
<dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>${easyexcel.version}</version>
</dependency>
二、编写接口
/*** 从Excel导入字段标准列表*/@ApiOperation("从Excel导入字段标准列表")@RequestMapping(value = "/import", method = RequestMethod.POST)public HttpResultVO<String> importMemberList(@RequestParam("file") MultipartFile file,@RequestParam("importStrategy") String importStrategy)throws IOException {List<ColumnStandardImportDTO> list = EasyExcel.read(file.getInputStream()).head(ColumnStandardImportDTO.class).sheet(0).doReadSync();// dataGovColumnStandardService.importData(list, importStrategy);// 将结果生成excel文件//创建一个流,等待写入excel文件内容ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();//将excel文件写入byteArrayOutputStream中EasyExcel.write(byteArrayOutputStream, ColumnStandardImportDTO.class).sheet("字段标准").doWrite(list);//创建inputStream流InputStream inputStream = new ByteArrayInputStream(byteArrayOutputStream.toByteArray());// 将结果excel文件存到minio上try {String fileName = file.getOriginalFilename();String[] fileNameArray = fileName.split("\\.");String filePrefix = fileNameArray[fileNameArray.length-1];// 原文件名SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");String date = sdf.format(new Date());String sb = "/data-gov/columnStandard/"+date.split("-")[0]+"/"+date.split("-")[1]+"/"+date.split("-")[2]+"/"+ UUID.randomUUID().toString().replaceAll("-","")+ filePrefix;myMinioClient.getInstance().putObject(PutObjectArgs.builder().bucket(minioConfig.getBucket()) // 桶名称.object(sb) // 文件存储名称.stream(inputStream, byteArrayOutputStream.size(), -1).contentType(file.getContentType()).build());String excelUrl = minioConfig.getEndpoint() + "/" + minioConfig.getBucket() + "/" + sb;return HttpResultVO.success(excelUrl);} catch (Exception e) {log.error("Error occurred: " , e);AssertUtil.throwException(true, "excel上传失败!");}return HttpResultVO.error("导入失败");}