java导出
请求头获取response
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.ExcelWriter;
import com.alibaba.excel.write.metadata.WriteSheet;@PostMapping("excel/export")
@ApiOperation(value = "党员档案导出", httpMethod = "POST")
public void exportUserRecord(UserRecordVO userRecordVO, HttpServletResponse response) {
从resoures下获取导入模板
InputStream is = new ClassPathResource("example/excel/export_template_to_user_record.xlsx").getInputStream();OutputStream os = response.getOutputStream();
写入内容
//读模板流response.setContentType("application/octet-stream");String fileName = "党员档案导出数据";String fileName3 = URLEncoder.encode(fileName, "utf-8");response.setHeader("Content-disposition", "attachment;filename*=utf-8''"+fileName3+".xlsx");// 2022/10/26 发送的文件导出验证码 6位数到消息通知
//设置文件加密String exportPwdCode = String.valueOf(new Random().nextInt(899999) + 100000);ExcelWriter excelWriter = EasyExcel.write(os).withTemplate(is).inMemory(true).password(exportPwdCode).build();log.info("党员导出:{}", SecurityUtils.getUser().getUsername());
WriteSheet writeSheet = EasyExcel.writerSheet().registerWriteHandler(new WaterMarkHandler(SecurityUtils.getUser().getUsername())).build();excelWriter.fill(listExcel, writeSheet);excelWriter.finish();os.flush();