spring mvc + poi
@ApiOperation("下载意见表")
@GetMapping(value = "/opinionWord/{id}")
@ResponseBody
public void opinionWord(@PathVariable Integer id,HttpServletResponse response,HttpServletRequest request) throws IOException {
JwOpinion jwOpinion = new JwOpinion().selectById(id);
if(jwOpinion==null){
return;
}
Date applyDate = jwOpinion.getApplyDate();
Date abroadBeginDate = jwOpinion.getAbroadBeginDate();
Date abroadEndDate = jwOpinion.getAbroadEndDate();
Map<String,Object> jsonObject = ObjectUtil.ObjectToJsonString(jwOpinion);
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
jsonObject.put("applyDate",formatter.format(applyDate));
jsonObject.put("abroadBeginDate",formatter.format(abroadBeginDate));
jsonObject.put("abroadEndDate",formatter.format(abroadEndDate));
try {
String fileDir = Class.class.getClass().getResource("/").getPath()+"doc";
File demoFile=new File(fileDir+"/opinion.doc");
FileInputStream in = new FileInputStream(demoFile);
HWPFDocument hdt = new HWPFDocument(in);
Range range = hdt.getRange();
for (Map.Entry<String,Object> entry:jsonObject.entrySet()) {
range.replaceText("$"+entry.getKey()+"$",String.valueOf(entry.getValue()));
}
response.reset();
response.setContentType("application/x-msdownload");
response.addHeader("Content-Disposition", "attachment; filename="+new String(("意见表-"+String.valueOf(jsonObject.get("title"))+".doc").getBytes("gb2312"), "iso8859-1"));
ByteArrayOutputStream ostream = new ByteArrayOutputStream();
ServletOutputStream servletOS = response.getOutputStream();
hdt.write(ostream);
servletOS.write(ostream.toByteArray());
servletOS.flush();
servletOS.close();
}catch (Exception e) {
e.printStackTrace();
}
}
模板 opinion.doc
党风意见表
来文单位 :$applyUnit$
来文时间:$applyDate$
征求意见依据:$title$
征求意见类型:$type$
征求意见名单:$personsList$
信访室意见:$opinionXfs$
纪检监察室意见:$opinionJjjds$
党风政风监察室意见:$opinionDfzfjds$
案件审理室意见:$opinionAjsls$
出境地:$abroadCountry$
出境开始时间:$abroadBeginDate$
出境结束时间:$abroadEndDate$