最近项目里要求从后台获取试题然后生成一张试卷导出Word。开始是利用xml 由Freemark模版生成,但是由于数据库里存了来自富文本框带Html格式的数据,此部分样式无法生成。只好先生成html,再导出Word。以下是我用到几种导出Word的方法。
1.利用Freemark模版生成
如果不是从数据库取出的数据本身带Html格式的话,这种方法是比较推荐的,适用生成格式比较复杂的情况。先在Word里画好你的模版,然后另存为xml格式,再将里面的内容用Freemark标签代替。
PaperToWordVo vo=new PaperToWordVo();
vo=paperResservice.getPaperInfo((String)session.getAttribute("dataowner"),paperId,vo);
response.setHeader("Content-Disposition","attachment;filename="+new String((vo.getPaperTitle()+".doc").getBytes("UTF-8"),"ISO8859-1"));
response.setContentType("text/html;charset=UTF-8");
response.setCharacterEncoding("UTF-8");
WordUtil handler = new WordUtil();
Writer out;
out = response.getWriter