freemarker html模板导出word日报

2018-08-17
  • 1731
  • 0

报表中需要字体高亮、书签和url跳转的功能,easypoiword模板导出不能友好支持上面的功能,最后使用了freemarkerhtml模板导出word。首先用word编写报表要显示的内容格式,动态显示内容用${变量名}替换,循环使用#list遍历数据。模板编写好后另存为html文件。生成的html就是要导出word报表的模板。通过TemplateLoader加载html模板,传入报表数据和输出文件路径,调用template.process方法生成word

报表中涉及到图表导出,利用javajfreechart类库生成图表。利用jfreechart可以生成饼图、柱状图、散点图折线图等多种图表,结合pdf生成图形报表。利用itext+freemarker+jfreechart生成pdf报表,可以很好的实现客户需要的报表格式和展示的内容。日报的数据来源通过媒体、微信、微博第三方数据接口,通过租户项目中的品牌关键词和es中的concenttitle进行模糊匹配查出数据。每个租户中所有项目中的品牌词生成对应的报表,通过fegin调用用户中心的接口查出要生成的数据集。

该方法由定时任务启动,定时任务使用ElasticJob分布式任务,每天晚上1点触发,调用生成日报的方法dailyBuild()。日前生成日报的格式支持wordecxel。再后继的开发中会加入pdf格式的报表,结合jfreechart生成带有图表数据和表格数据的报表,使用定时任务每天晚上凌晨1点生成租户前一天的日报,数据来源包括媒体、微信、微博,早上9点定时发送给用户。