流行的报表生成工具-JXLS

如果你还在为灵活的生成各种复杂报表犯愁,在为常用报表工具消耗大量内存担心。我推荐一个很好用的开源的Java报表生成工具。

本工具封装了强大的POI。但与POI不同的是,它可以用很简洁的代码生成复查的,各种功能的报表。

官网地址:http://jxls.sourceforge.net/index.html

应用实例Java实现:https://gitee.com/barrywang/jxls-demo

自己基于JXLS实现了一套万能的报表工具(Scala语言实现,推荐学习,比Java强很多,支持函数式编程):https://gitee.com/barrywang/db-report

下面重点介绍下我实现的这个工具,希望能帮助到大家:

1.1 部署目录结构说明

 /tmp/finance/db-report
 |   db_report.jar                           --报表工具可运行Jar
 +---config
 |       config.conf                         --数据库配置文件
 +---logs
 |   \---db-report
 |           detail-db-report.2018-06-29.log --工具日志
 +---output
 |       20180629104146invoice-store.xlsx    --报表输出目录
 \---report
     +---runscript                           --shell启动工具脚本
     |   +---inventory-stock
     |   |       genInventoryStockReport.sh
     |   +---invoice-logistics
     |   |       genInvoiceReport.sh
     \---template                           --报表Excel模板
             check_account_template.xls
             invoice_line_template.xls
     \---scala-script                       --Scala脚本
             getMemberInfo.sc

1.2 启动参数及说明

 -q (-query) <db>:<objectName>:<sql>             : 数据库:对象名:查询SQL脚本,中间用英文分号“:”隔开, 请避免SQL中使用英文":"。
                                                   其中若传入模板时,对象名代表模板内EL表达式的key值。若不传入模板,对象名就是生成Excel当前sheet的名称。
                                                   可以传入多个-q (-query) <db>:<objectName>:<sql>组合, 多个会分别生成报表的多个sheet中。(String)
 -s (-script) <scalaScript;paramName:paramValue> : Scala脚本文件, 请返回一个Scala Map[String, AnyRef]。如果scala脚本需要传入参数, 请脚本后加分号";", 再加参数名:参数值。
                                                   Scala脚本请参考:http://ammonite.io/#ScalaScripts。(String)
 -t (-template) <template file>                  : JXLS Excel模板文件绝对路径, 请参考:http://jxls.sourceforge.net/reference/simple_exporter.html。(File)
 -o (-output) <output excel file>                : 输出Excel文件绝对路径。(File)
 -m (-mailto) <email>                            : 生成报表发送邮箱,多个使用英文分号“;”分割。(String)
 -sub (-subject) <subject>                       : 邮件主题。(String)

1.3 命令举例

 1.3.1 根据SQL生成报表
        java -jar db_report.jar -q member:会员信息:"select * from member" -o "/tmp/db-report/output/member.xlsx" -mailto "[email protected];[email protected]"
        java -jar db_report.jar -q member:会员信息:"select * from member" -q order_db:订单信息:"select * from orders" -o "/tmp/db-report/output/memberOrders.xlsx" -mailto "[email protected]"
 1.3.2 根据SQL+模板生成报表
        java -jar db_report.jar -q member:members:"select * from member" -t "/tmp/db-report/report/template/member-template.xls" -o "/tmp/db-report/output/member.xlsx" -mailto "[email protected]"
 1.3.3 根据Scala脚本+模板生成报表
        java -jar db_report.jar -q -s "/tmp/db-report/report/scala-script/getMemberInfo.sc" -t "/tmp/db-report/report/template/member-template.xls" -o "/tmp/db-report/output/member.xlsx" -"mailto [email protected]"
 1.3.4 根据SQL+Scala脚本+模板生成报表
        java -jar db_report.jar -q -q member:members:"select * from member" -s "/tmp/db-report/report/scala-script/getMemberInfo.sc" -t "/tmp/db-report/report/template/member-template.xls" -o "/tmp/db-report/output/member.xlsx" -mailto "[email protected]"

原文地址:https://www.cnblogs.com/barrywxx/p/10009957.html

时间: 2024-10-12 13:13:00

流行的报表生成工具-JXLS的相关文章

转:目前流行的缺陷管理工具

缺陷管理工具: 1. Bugzilla 2. Bugfree 3. TestDirector (Quality Center) 4. ClearQuest 5. JIRA 6. Mantis 7. Bugzero 8. BugTracker 9. URTracker 10.KisTracker 11.TestLink 12.JTrac 13.BugNet 14.BugOnline 15.eTraxis 一.Bugzilla(免费,跨平台) Bugzilla是一个Bug追踪系统设计用来帮助你管理软

流行Java IDE工具大比拼[转]

from ken_li http://blog.sina.com.cn/s/blog_722532880102v2ba.html Java是目前最流行的软件开发语言,其IDE环境也备受开发者关注,IDE可以极大的提高开发速度. 一.Intellij IDEA 这是一款非常优秀的商业Java IDE开发工具,非常适合做J2EE开发,当前最新版本为6.02.Idea有官方发布版已经集成了ANT.JS.Tomcat.WebLogic.CVS.SVN客户端.JSP/HTML/xml等插件,支持对JSP/

目前流行的缺陷管理工具

1. Bugzilla 2. Bugfree 3. TestDirector (Quality Center) 4. ClearQuest 5. JIRA 6. Mantis 7. Bugzero 8. BugTracker 9. URTracker 10.KisTracker 11.TestLink 12.JTrac 13.BugNet 14.BugOnline 15.eTraxis 一.Bugzilla(免费,跨平台) Bugzilla是一个Bug追踪系统设计用来帮助你管理软件开发. Bug

大公司或专业团队目前流行的前端工具有什么?

寸志,前端工程师 黄保长.王楠.Bear Little 等人赞同 下面这些东西在大公司可能不流行(你懂的,大公司喜欢自己造轮子),但绝对是专业前端需要了解的: Node.js:现代工业化前端的基础: RequireJS:AMD规范,即将过时的 JavaScript 模块化方案: Bower:前端模块源: npm:前端工具源,另一个潜在的前端模块源: Browserify:即将过时的基于 CommonJS 的前端模块化方案: Less:等 CSS 增强工具: Gulp:前端构建工具,如果你在前端开

最流行的自动化测试工具,总有一款适合你

1)Selenium Selenium 可能是网页应用中最流行的开源自动化测试框架.起源于 2000 年,10 多年来不断地完善,Selenium 成为许多 Web 自动化测试人员的选择,尤其是那些有高级编程和脚本技能的人.Selenium 也成为了其他开源自动化测试工具比如 Katalon Studio,Watir,Protractor 和 Robot Framework 的核心框架. Selenium 支持多系统环境(Windows,Mac,Linux)以及多种浏览器(Chrome,Fire

(小组)目前流行的单元测试工具有哪些

在一种传统的结构化编程语言中,比如C,要进行测试的单元一般是函数或子过程.在象C++这样的面向对象的语言中, 要进行测试的基本单元是类.对Ada语言来说,开发人员可以选择是在独立的过程和函数,还是在Ada包的级别上进行单元测试.单元测试的原则同样被扩展到第四代语言(4GL)的开发中,在这里基本单元被典型地划分为一个菜单或显示界面. 单元测试不仅仅是作为无错编码一种辅助手段在一次性的开发过程中使用,单元测试必须是可重复的,无论是在软件修改,或是移植到新的运行环境的过程中.因此,所有的测试都必须在整

常用报表工具

报表工具:是帮助用户用来展现自己输入数据,更多时候是将数据库中的数据,以客户想要的方式展现出来. 中文名 报表工具 目 的 以客户想要的方式展现出来 性 质 动态显示数据 报表工具 SVF水晶报表JReport 目录 1报表工具评述 ? 目前国内报表工具概述 ? 简述几款主流报表工具 2如何选择报表工具 1报表工具评述编辑 目前国内报表工具概述 很多国际品牌的报表工具基本上都能把数据库的数据取出来运算排列制作出动态的变长统计报表,也就是“报”的能力不错.但“表”的功能就不是很好了.所以国产报表还

报表:报表工具

ylbtech-报表:报表工具 报表:就是用表格.图表等格式来动态显示数据. 报表工具:是帮助用户用来展现自己输入数据,更多时候是将数据库中的数据,以客户想要的方式展现出来. 1.返回顶部 1. 中文名:报表工具 目    的:以客户想要的方式展现出来 性    质:动态显示数据 报表工具:SVF水晶报表JReport 目录 1 评述 ? 概述 ? 主流报表 2 如何选择 2. 2.返回顶部 1. 评述 概述 很多国际品牌的报表工具(大数据魔镜)基本上都能把数据库的数据取出来运算排列制作出动态的

分享一款值得分享的写作工具

俗话说的好:工欲善其事,必先利其器.作为技术的工匠来说,不仅仅需要好的开发工具,好的开发工具可以提高我们的工作效率,但是我们还需要更好的写作和总结工具才行,这样有利于提高我们的技术,学习和总结能力.作为开发者和程序员,这两年最流行的写作工具非MarkDown莫属了.简书,CSDN和github pages都支持markdown格式.所以今天我们推荐的写作工具就是关于markdown的. MarkdownPad MarkdownPad是Windows下的一个全功能Markdown编辑器.用户可以通