晚上找了一圈没有特别灵活简便的按模板导出word的方式,竟然连常用的hutool也没有提供,
第一次做word导出,但是时间紧迫不想折腾网上那些麻烦的方法,然后想到之前论坛里大大分享的html转存Excel的方式,于是我顺着想法试了一下竟然可以
本质是html输出word转存为word文档!
首先在业务需求的word文档上填写enjoy填充数据的语句,如下图:
然后另存为html文件:
最后,Controller输出:
{...
String fileName = "自定义文件名.doc";
setAttr("addinfo", addinfo);
render(new FileTemplateRender("teacherPrint.html", fileName));
}
ok,就是这么简单,打完收工!
*tip0:FileTemplateRender的源码:→传送门(JFinal使用技巧-Enjoy导出XLS)
*tip1:因为是word模板转存为html,所以enjoy语句里千万别有空格或者特殊符号,否则转存后的html文件的空格是 ,会导致enjoy引擎无法渲染
*tip2:转存后的html文件用的是系统默认编码,可以粘贴我下面这串代码覆盖一下
<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns="http://www.w3.org/TR/REC-html40"> <head> <meta http-equiv=Content-Type content="text/html; charset=UTF-8"> <meta http-equiv="content-type" content="application/msword; charset=UTF-8"> <meta name=ProgId content=Word.Document> <meta name=Generator content="Microsoft Word 14"> <meta name=Originator content="Microsoft Word 14">