Java|Java开发报表怎么做?这2类提高效率的工具,你得试试


Java|Java开发报表怎么做?这2类提高效率的工具,你得试试
文章图片
Java|Java开发报表怎么做?这2类提高效率的工具,你得试试
文章图片
Java|Java开发报表怎么做?这2类提高效率的工具,你得试试

日常工作中可能经常会涉及到用java开发报表 , 需求比较多的就是表格类的报表导出 , 单元格合并 , 图表的展现 。 具体怎么实现 , 分表格和图表两类来说 。
1、表格类
通常采用的方式是“Java+POI+Excel模板”来制作简单的报表 , 生成Excel 。
其实Java中实现Excel根据模板导出数据的方法有很多 , 一般简单的可以通过操作pol进行 。 还可以使用一些工具很轻松的实现模板导出 , 这些工具现在还在维护 , 而且做得比较好的国内的有easypoi , 国外的就是jxls了 。
如果是要用java开发报表模块和功能 , 其实可以着重利用jxls框架 。
我用jxls也有半年时间了 , 半年前因项目原因需要导出大量的excel文件 , 所以找到了jxls , 基本可以完全满足所有的项目需要 。 不使用easypoi的原因是那时候测试时候效果不是很好 , 项目中有很多复杂的报表(大量单元格合并和单元格样式) , easypoi处理合并单元格时候容易出现残损的情况 。
而且pol、jxl代码工作量大 , 编码效率很低且不方便维护 。 Jxls的话相对简单轻量 , 使用特定的标记在excel模板文件中来定义输出格式和布局 。
jxls是通过预制excel模板 , 然后通过jxls响应API将我们应用程序的数据结合模板格式输出到相应的excel文件中 , 从而形成报表 。
报表的其他需求还有很多 , 比如前端查询 , 相关的组件很多 , 原理无非就是选择你所关注的信息(数据列) , 选择时间等(查询条件)生成数据集 , 然后在servlet中将数据集转成报表组件所需要的格式 , 传送到前台渲染 。
2、图表类
涉及到报表的图表开发 , 就是饼图、柱状图那些 , 可以用echarts还有highchart 。
这里要注意 , 如果是做web端的图表 , 不要使用java层的组件 , 使用js层的组件 , 因为java层的组件生成的是图片 , 而js是生成的web代码 , 如果有交互性的功能和动态功能 , java层的组件是难以实现的 , 同时在java层构造图片也是比较严重消耗服务器性能的 。
推荐使用js层图表组件库 , 常用的有echarts和国外的知名组件highchart , 因为是js组件库 , 服务端只用推送数据到客户端 , 有js来绘制图层 , 因此不需要写文件下载的模块 。
这里总结一些报表开发常用的开源组件库吧:
  • Java office、pdf 操作组件库
  • Apache POI
  • JXL
  • iText
  • OpenOffice
  • PDFBox
  • jquery.table2excel.js
图表前端
  • ECharts
  • 【Java|Java开发报表怎么做?这2类提高效率的工具,你得试试】Highcharts
  • D3
后面我就不用java开发报表了 , 因为报表需求量大 , 以往的大量报表还要维护 , 然后还有各种复杂的表格形式难以捉摸容易出bug , 所以后面就直接用专业的报表工具 。
像报表导出 , 图表制作 , 开发少说2天 , 如果用报表工具基本上分分钟的事 。 哎 , 能有现成工具真的不要花时间和人力去开发应用来解决问题 。


推荐阅读