用报表工具开发,核心功能是把各种数据源的数据以表格或图表的形式在线上网页端呈现出来。但是很多场景都是线上和线下结合,既要方便线上在系统中查看到报表,同时还得能和传统的线下业务无缝贴合,比如把结果导出到文件来流转、电子归档呀之类的,这时就需要报表工具具备强有力的所见即所得的导出本领。

当前,对报表工具来说,支持导出基本算是标配功能,除了开源报表工具在支持的文件类型上有限制外,对于商业报表工具来说,常用的文件类型,几乎没什么区别,比如都支持导出 word、excel、pdf、txt 等。

至于使用的技术细节,这里就不做详细讨论了,像市面上最多的用 java 开发的报表工具,基本都是借助第三方开源的工具包,如 poi 导出 excel、itext 导出 pdf 等。

需要强调的是,虽然商业报表工具一般都能导出希望的条件,但效果可能差出千万里,不能简单地听厂商宣传说能与不能,还要看好与不好。报表工具模型有传统条带式与新型网格式两种,前者在设计报表的时候就存在位置摆放精度不准,边框间重合、对齐等难搞的问题,结果会导致导出的文件出现失真的情况,或者搞出一大堆碎格子,反正都不是想要的效果;而后者才能充分体现表格的规律性,导出时能保证无失真。

除了基本导出功能外,还会有些个性化需求,比如报表不需要展现,希望直接批量导出多个报表、多个报表导出到一个 excel 文件等。大多数国产老厂商也都提供了丰富的 api,例子一搜一堆,可轻松扩展导出能力。比如下面示例,几行代码解决批量导一个 excel 文件。

尽管新型网格式设计器对于基本的导出效果都做的挺好了,各产品间也几乎无差异,但对于一些真正特殊格式或要求的报表,也不是谁都能搞好的。

比如,word 报告式的报表

图一

这类报告用报表工具做的话都得是硬画(如富文本),好处在于可以让数据动态变化,图表设计更加灵活,不会因为数据不同,还要重复修改文件。但是有很大的缺点,比如页面展现尽管看着有标题格式等表现,但是导出 word 会发现实际页面上只是标题效果,word 内是正文了,还包括一些换行、排版,做起来麻烦,导出后的效果也无法完全达到预期效果。

对于这种需求,其实还有更好的解决方案,比如我们可以用报表工具结合一些 api 来搞,像一些固定内容,如标题了、固定描述性的文字了就放在 word 文件内做好,在需要放入表格或图表的位置插入个书签。

通过报表工具提供的 api 把计算后的报表结果插入到对应的书签位置就可以了。

这么做,避免了硬排版(可以更好布局),方便调整样式,提高报告式报表开发效率的同时,导出的 word 也更符合报告的需求(图一)。详细方案可参考 怎样自动把报表插入到 word 文档中

再如,产品中可能用到了第三方的展现控件,像开源的 echarts 统计图,图形丰富、展现酷炫,常被集成到报表中使用,但有个麻烦的事儿是没法导出。其中的原因是,报表导出是后台程序实现,而 echarts 需要从浏览器(前端)中截取图形才能导出,如果报表一页呈现,这个还好处理,一旦报表分了多页,echarts 图形也就可能分布到多页内了,而我们是无法从浏览器截取到当前页未展现的 echarts 图的,所以这个就要考察报表工具的功能完善度,方案实际比较清晰,把所有的 echarts 图形拿到,交给后台放到报表对应的位置就行,关键是看报表工具是不是已经解决了。想了解报表工具解决导出 echarts 方案细节的,推荐 如何才能导出和打印 Echarts 图形? 学习了解下。

从上面的例子可以了解到,尽管宣传上每个报表工具的导出功能上还都挺全面的,基本的导出也支持。但具体到细节及扩展能力,可比较的功夫还是很多的。那我们在选产品的时候,导出基本效果就够用了?还是有些特殊的表样、需要特别的导出效果、导出功能扩展?那就要根据需求,花点时间扣扣细节,比比细节了。

Java报表导出有哪些技术_报表工具能实现怎么的导出效果?相关推荐

  1. java调用帆软cpt文件_报表开发导出各种格式文件的API

    文件输出的多样性,准确性和稳定性对于我们常用的报表软件来说很重要.报表的输入是指从报表的模板文件(XML格式的)创建WorkBook对象,输出则指将报表保存为各种格式文件,比如Pdf.Excel.Wo ...

  2. java调用帆软cpt文件_报表中心FineReport中java如何直接调用报表打印

    完整代码: package com.fr.io; import java.io.File; import java.util.HashMap; import com.fr.base.FRContext ...

  3. java 4种跟踪会话技术_会话跟踪技术

    一.会话跟踪技术 在JavaWeb中,客户向某一服务器发出第一个请求开始,会话就开始了,直到客户关闭了浏览器会话结束. 在一个会话的多个请求中共享数据,这就是会话跟踪技术 会话路径技术使用Cookie ...

  4. JAVA物联所需技术_基于JAVA多线程技术解决物联云端服务雪崩效应的方法与流程...

    本发明涉及互联网技术领域,特别涉及一种基于JAVA多线程技术解决物联云端服务雪崩效应的方法. 背景技术: 目前,物联云系统已经作为普遍的智能电视平台出现在我们面前,而细致分析物联云系统我们可以发现,当 ...

  5. java做直播需要哪些技术_直播APP开发中需要解决哪些技术难点?千联信息

    泛娱乐发展的火热,网红经济不断发酵的今天,不少企业靠着开发直播APP狠狠的赚了一波,导致很多人眼红,也想投入其中. 那么开发一款直播APP开发中需要解决哪些技术难点?小编在这里就来为大家解答: 视频直 ...

  6. java 数学公式解析框架有哪些_开源工具 | 推荐几个Gitee火热Java项目

    openEA开源周刊 openEA开源社区的官方运营载体 这里每天给大家呈现有价值的开源资讯,欢迎您的来稿与推荐,点击上方蓝色字,加入我们吧! 摘要:OkHttps 是近期开源的对 OkHttp3 轻 ...

  7. 怎么导出mysql数据库注释_数据库基础:如何查看并导出数据表中字段的注释信息...

    查看并导出SQL Server 2000数据表中字段的注释信息: 此示例为导出某个表注释的语句:(表名是bbs_bank_log) SELECT sysobjects.name AS 表名, sysc ...

  8. java报表技术-图形报表

    目录 JFreechart 简介 入门案例 Highcharts 简介 下载安装 入门案例 准备页面 统计各部门人数(柱状图) 月份入职人数统计(折线图) 员工地方来源统计(可下钻的饼状图) Echa ...

  9. birt报表表格边框_选开源报表开发还是商用?2020报表软件产品整理

    开源报表却越来越受到程序员热烈追捧,如ireport. Jsper report.jfreechart这样的免费,开源的JAVA报表工具,在一下开源的JAVA报表相关的论坛里面都是热火朝天,发问者众多 ...

  10. 水晶报表中对某一栏位值进行处理_从主流报表工具的报价看报表行业的报价水深-----常用报表工具对比---主流报表价格对比...

    由于报价对于一些价格较高而且不透明的厂商来说属于商业机密,所以我们就不贴图了,只贴了一些价格是公开透明的厂商的报价 拿到其他报价的,自己根据下文对比一下就能明白 目前市场上最主流的报表工具就那么几个, ...

最新文章

  1. python中基本程序结构_关于Python 程序格式框架的描述,正确的是( )
  2. GitHub 标星 32.7 k!一行命令下载全网视频,这个项目牛逼了!
  3. php计算代码运行时间与内存使用的一段代码
  4. PyTorch:存储和恢复模型并查看参数,load_state_dict(),state_dict()
  5. 【回文串1 动态规划 马拉车算法】LeetCode 5. Longest Palindromic Substring
  6. HTML5全球普及加速:有望终结iOS与安卓界限【转】
  7. web软件测试 测试报告模板_测试报告模板V1(提供下载)
  8. 10.24程序员节专辑——程序员最爱的数字,1024的秘密
  9. html怎么解压缩文件,压缩包7z如何解压
  10. linux安装nginx、php、mysql搭建网站
  11. D3D11的简单字体
  12. 无人机上需要哪些程序? 以及如何进行无人机编程?
  13. cleanmymac苹果电脑必备mac系统垃圾清理工具分享
  14. 阐明量子力学到底为何物?
  15. TCP/IP协议卷一(一)
  16. pycharm 配置 interpreter
  17. 深度资讯|美团王兴带头承诺廉洁自律,互联网公司也需要“人民的名义”
  18. 揭秘闲鱼赚钱项目的高端玩法
  19. 清除盗游戏帐号的密西木马变种(Trojan.PSW.Misc.r)等
  20. JDBC getParameterType call failed - using fallback method instead

热门文章

  1. 进销存系统的成本核算方法一览
  2. iOS 去除字符串中的H5标签。
  3. 广外专版-msn聊天记录查看器
  4. 计算机机房空调原理,机房精密空调的工作原理
  5. Java OCR tess4j 图片识别技术(三)
  6. 微型计算机的外存储器 现在普遍采用什么,当前微型计算机上大部分采用的外存储器,不包含什么? 有选择A 硬盘 B 光盘 C 软盘 D 磁带...
  7. 腾讯地图SDK公交路线规划Demo
  8. 经验总结 | PBS系统的使用
  9. 流媒体弱网优化之路(FEC+mediasoup)——mediasoup的Nack优化以及FEC引入
  10. 我用飞桨做了一个菜品图像识别系统