需求:有时生成excel之后,不需要直接返回流下载,需要转为文件保存到服务器中。
代码示例
/*** 生成文件并保存到文件服务* @return* @throws IOException*/@Overridepublic Long excelTransferFile() throws IOException {// >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 文件生成准备 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>// 获取模版文件ClassPathResource classPathResource = new ClassPathResource("xls_template/file_template_fixed.xlsx");InputStream fis = classPathResource.getInputStream();// 保存写入的数据流ByteArrayOutputStream outputStream = new ByteArrayOutputStream();try {// 设置excel输出策略ExcelWriter excelWriter = EasyExcel.write(outputStream, InternalSolutionFillDTO.class).withTemplate(fis).build();// 不需要直接返回流// out.flush();// out.close();/*** 转为文件 MockMultipartFile*/String fileName = "文件"+System.currentTimeMillis()+".xlsx";String originName = "file_"+System.currentTimeMillis()+".xlsx";MockMultipartFile customerFile = new MockMultipartFile(fileName,originName, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", outputStream.toByteArray());// 保存至文件服务的代码 略...} catch (Exception e) {log.error("文件生成,方法异常>>>>>>>>>>>>>>", e);} finally {fis.close();}return null;}