使用poi tl插件
官网地址 http://deepoove.com/poi-tl
测试类
/**
* 用户信息导出word
* @throws IOException
*/
@RequestMapping(value = “/exportUserWord”, method = RequestMethod.GET)
public void exportUserWord(HttpServletRequest request, HttpServletResponse response,OutputStream out) throws IOException{
response.setContentType(“application/vnd.ms-excel”);
response.setHeader(“Content-Disposition”, “attachment;filename=” +new SimpleDateFormat(“yyyyMMddHHmm”).format(new Date())+".docx");
Map<String, Object> params = new HashMap<>();
// 渲染文本
params.put(“name”, “张三”);
params.put(“title”, “测试”);
params.put(“context”, “哈哈哈哈哈哈”);
params.put(“card”, “123”);
params.put(“schoolName”, “华中小学”);
params.put(“phone”, “18611798453”);
params.put(“sex”, “女”);
params.put(“tableName1”, “自定义表格1”);
RowRenderData header = RowRenderData.build(new TextRenderData( “姓名”), new TextRenderData(“学历”));
RowRenderData row0 = RowRenderData.build(“张三”, “研究生”);
RowRenderData row1 = RowRenderData.build(“李四”, “博士”);
MiniTableRenderData miniTableRenderData = new MiniTableRenderData(header, Arrays.asList(row0, row1));
params.put(“thinkTable”,miniTableRenderData);
// 渲染图片
// TODO 渲染其他类型的数据请参考官方文档
String templatePath = “D:\user.docx”;
params.put(“tableName2”, “自定义表格2”);
WordUtil.downloadWord(response.getOutputStream(), templatePath, params);
// 读取模板templatePath并将paramMap的内容填充进模板,即编辑模板(compile)+渲染数据(render)
//根据接口查出得数据
List school = new ArrayList<>;
HackLoopTableRenderPolicy policy = new HackLoopTableRenderPolicy();
Configure config = Configure.newBuilder()
.bind(“school”, policy).build();
params.put(“school”,school);
XWPFTemplate template = XWPFTemplate.compile(templatePath, config).render(params);
try {
//out = new FileOutputStream(filePath);//输出路径(下载到指定路径)
// 将填充之后的模板写入filePath
template.write(out);//将template写到OutputStream中
out.flush();
out.close();
template.close();
} catch (Exception e) {
e.printStackTrace();
}
}
word模板
https://download.csdn.net/download/qq_35908944/12881634
java生成word文件
最新推荐文章于 2024-04-29 15:51:13 发布