流行的报表生成工具-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
github:https://github.com/barrywang88/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 "XXX@qq.com;YYY@qq.com"
java -jar db_report.jar -q member:会员信息:"select * from member" -q order_db:订单信息:"select * from orders" -o "/tmp/db-report/output/memberOrders.xlsx" -mailto "XXX@qq.com"
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 "XXX@qq.com"
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 XXX@qq.com"
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 "XXX@qq.com"
流行的报表生成工具-JXLS的更多相关文章
- 流行JAVA开发工具
流行JAVA开发工具 正所谓工欲善其事必先利其器,我们在开发java语言过程中同样需要依款不错的开发工具,目前市场上的IDE很多,本文为大家推荐以下下几款java开发工具: Eclipse(推荐):另 ...
- linux系统下使用流行的版本管理工具 Git
前几天被版本管理困扰了好久,主要是因为 没法回到之前的版本,新版本又出了问题真的很尴尬. 终于决定使用目前网上很火的版本管理工具-------Git 历史啥的就不说了,说些有用的. 我用的是oschi ...
- 报表生成工具 —— iText
十二月份一直在做生成报表的功能,中间踩了不少坑,刚好今天有时间,写篇博客记录一下. 一.iText 简介 iText 是著名开放源码站点 sourceforge 的一个项目,是一个用于生成 PDF 文 ...
- 报表生成工具ireport
最近又开始学习新的玩意儿了,扒拉扒拉网上的资源,先捣鼓个思维导图.
- 【翻译】Awesome R资源大全中文版来了,全球最火的R工具包一网打尽,超过300+工具,还在等什么?
0.前言 虽然很早就知道R被微软收购,也很早知道R在统计分析处理方面很强大,开始一直没有行动过...直到 直到12月初在微软技术大会,看到我软的工程师演示R的使用,我就震惊了,然后最近在网上到处了解和 ...
- 推荐6款常用的Java开源报表制作工具
JasperReports是一个基于Java的开源报表工具,它可以在Java环境下像其它IDE报表工具一样来制作报表.JasperReports 支持PDF.HTML.XLS.CSV和XML文件输出格 ...
- java通过jxls框架实现导入导出excel
//使用jxls报表生成工具,把java实体类导出生成 Excel文件或导入 Excel 插入数据库 02 03//读取04 05public class ReadExcel {06 private ...
- 专业上的常用的工具和类库集 By 老衣
Visual Studio 2013 扩展 CodeMaid: 可快速整理代码文件,清理不必要的代码和杂乱的格式.并在开发时实时提供代码复杂度的报告,以便帮助开发人员降低代码复杂度.提高代码质量. C ...
- 性能测试工具 转自https://yq.aliyun.com/articles/35149?spm=5176.100239.blogcont35147.8.rsow6k
摘要: 继续这个系列的学习,这一节重点介绍目前流行的性能测试工具以及如何选择适合项目的工具.在此之前,我已经对性能测试工具的原理与架构做了分析. http://www.cnblogs.com/fnng ...
随机推荐
- 解决持久化数据太大,单个节点的硬盘无法存储的问题;解决运算量太大,单个节点的内存、CPU无法处理的问题
需要学习的技术很多,要自学新知识也不是一件容易的事,选择一个自己比较感兴趣的会是一个比较好的开端,于是,打算学一学分布式系统. 带着问题,有目的的学习,先了解整体架构,在深入感兴趣的细节,这是我的计划 ...
- 这样入门asp.net core,如何
本文章主要说明asp.net core的创建和简单使用. 一.使用到的命令 dotnet new :创建项目(解决方案,类库,单元测试等),如:dotnet new web dotnet add pa ...
- springmvc配置详解 教程
https://www.cnblogs.com/sunniest/p/4555801.html
- 微机原理基础(四)—— MSC51
一.MCS51基本组成(STC89C52) CPU(8051CPU) + 存储器(4KB ROM/256B RAM)+外设(4组IO口,两个定时器,一个串口) 1.组成结构简图 ...
- RabbitMQ (三) 发布/订阅
转发请标明出处:http://blog.csdn.net/lmj623565791/article/details/37657225 本系列教程主要来自于官网入门教程的翻译,然后自己进行了部分的修改与 ...
- Linux运行firefox出错
虚拟机自带的firefox版本太旧了,于是在官网上下载了最新的安装包,运行后提示: $ firefox XPCOMGlueLoad error for file /home/parallels/fir ...
- config.go 源码阅读
package main import ( "io/ioutil" "launchpad.net/goyaml" ) // ProxyConfi ...
- txn.go
package clientv3 import ( "sync" pb "github.com/coreos/etcd/etcdserver/etcdse ...
- OpenGL渲染管线(rendering pipeline)
OpenGL中的渲染管线包括:顶点着色器(vertex shader).细分着色器(里面包含两种:细分控制着色器和细分控制着色器)(tessellation shader).几何着色器.光栅化及片元着 ...
- bzoj 1485 [HNOI2009]有趣的数列 卡特兰数
把排好序的序列看成一对对括号,要把他们往原数列里塞,所以就是括号序合法方案数 即为卡特兰数 f(n)=Cn2nn+1 求的时候为避免除法,可以O(n)计算每个素数出现次数,最后乘起来,打完之后发现其实 ...