public static void crateFile(HttpServletResponse response, SiInterview siInterview){ XWPFTemplate template = null; try { template = XWPFTemplate .compile(new ClassPathResource("/templates/约谈通知书.docx").getFile().getPath()) .render( new HashMap<String, Object>(){{ put("intervieweeUnit", siInterview.getIntervieweeUnitName()); put("interviewee", siInterview.getIntervieweeName()); put("interviewPlace", siInterview.getInterviewPlace()); if (siInterview.getInterviewTime()!=null){ put("interviewTime", DateUtils.parseDateToStr("yyyy年MM月dd日 HH时mm分",siInterview.getInterviewTime())); } put("interviewMatter", siInterview.getInterviewMatter()); }}); ServletOutputStream outputStream = response.getOutputStream(); response.setContentType("application/octet-stream"); response.setHeader("Content-Disposition","attachment;filename=".concat(URLEncoder.encode("约谈通知书.docx", "UTF-8"))); BufferedOutputStream bos = new BufferedOutputStream(outputStream); template.write(bos); bos.flush(); outputStream.flush(); PoitlIOUtils.closeQuietlyMulti(template, bos, outputStream); } catch (IOException e) { e.printStackTrace(); } }
<dependency> <groupId>com.deepoove</groupId> <artifactId>poi-tl</artifactId> <version>1.9.1</version> </dependency>