用Excel出报表是我们办公中经常有的事情。如何通过查询数据库然后生成报表呢?现在有很多开源的工具可以实现这个需求,当然也有很多收费的工具。介绍一下开源Excel报表工具jxls。jxls的官方网站(http://jxls.sourceforge.net/index.html)。jxls内部是用的POI,目前对应的版本是3.2。

  jxls主要有以下特点:

  • Using SQL queries directly in XLS templates
  • Simple property access notation
  • Full expression language support
  • Complex object graph export
  • Flexible collection export
  • Flow-Control Tags support
  • Dynamic grouping of data
  • Export of a single collection into multiple worksheets
  • Adjacent tables support!
  • Complex formulas support
  • Charts, Macros and many other Excel features in XLS template
  • Dynamic Outlines
  • Dynamic Columns Hiding
  • Dynamic Cell Style processing through custom Processors
  • JDBC ResultSet export
  • Merged Cells support
  • Multiple bean properties in a single cell
  • Reading XLS files

要使用jxls的话,需要另外的一些相关的包。

  • POI 3.2
  • Commons BeanUtils
  • Commons Collections
  • Commons JEXL
  • Commons Logging
  • Commons Digester

官方的下载包里面有很多例子。可以参照例子自己建Excel模板,然后通过程序填充数据就可以生成报表了。

程序例子:

public class ChartSample {
    private static String templateFileName = "d:/chart.xls";
    private static String destFileName = "d:/chart_output.xls";

public static void main(String[] args) throws IOException, ParsePropertyException {
        if (args.length >= 2) {
            templateFileName = args[0];
            destFileName = args[1];
        }
        List staff = new ArrayList();
        staff.add(new Employee("Derek", 35, 3000, 0.30));
        staff.add(new Employee("Elsa", 28, 1500, 0.15));
        staff.add(new Employee("Oleg", 32, 2300, 0.25));
        staff.add(new Employee("Neil", 34, 2500, 0.00));
        staff.add(new Employee("Maria", 34, 1700, 0.15));
        staff.add(new Employee("John", 35, 2800, 0.20));
        staff.add(new Employee("Leonid", 29, 1700, 0.20));
        Map beans = new HashMap();
        beans.put("employee", staff);
        XLSTransformer transformer = new XLSTransformer();
        transformer.markAsFixedSizeCollection("employee");
        transformer.transformXLS(templateFileName, beans, destFileName);
    }
}

生成结果如图所示:

开源Excel报表工具:jxls相关推荐

  1. jor(1):简表(JOR)开源的报表工具调研

    1,项目介绍参考: 我觉得需要说明下,我不是这个公司的员工,也不是做广告,只是调研下这个开源报表软件. 简表(JOR),是一款开源的报表工具,完全java实现,核心代码来自于国内一线报表工具品牌杰表. ...

  2. 开源报表工具python_开源web报表工具哪家强?5款最优软件

    阅读提示: 文章中与FineReport软件使用的相关内容,基于软件的V7.0旧版本编写,不代表软件最新的使用方式. FineReport最新版免费试用:https://www.finereport. ...

  3. 免费开源JAVA报表工具对比 BIRT报表VS润乾报表之初体验

    前一段时间,被导师安排对报表开发工具做调研,之后就一度泡在各大博客.论坛里,尽可能全面的搜集了几款报表工具的优缺点,攒成了<java报表工具报表软件选型经验总结分享>.不过大多都是直接抄的 ...

  4. 开源BI报表工具Metabase初体验

    概述 一款开源BI工具,后端是用clojure开发的.官网,GitHub. 安装 安装非常简单,以metabase.jar包(后文简称jar包)方式分发.在GitHub Release页面下载最新版即 ...

  5. java导出excel报表工具类

    自己写的导出excel报表的公共方法,该公共方法主要用于非横向流动性报表导出 1.创立excel基本初始步骤 XSSFWorkbook wb = new XSSFWorkbook();XSSFCell ...

  6. 12个最好的开源报表工具

    23顶 10踩 12个最好的开源报表工具 2009-11-18 17:05 by 资深编辑 wutao0603 评论(13) 有20017人浏览 收藏 .声明:JavaEye新闻文章的版权属于Java ...

  7. 定制自己的报表!7款实用开源报表工具

    https://www.evget.com/article/2014/4/8/20794.html 1. Pentaho Pentaho Report Designer是一款所见即所得的开源报表设计工 ...

  8. 流行的前端开源报表工具有哪些?适合在企业级应用的

    前端开源报表工具有很多,但是如果是企业级应用真心不建议选用. 比如非要选择开源的报表工具,你需要投入一个或多个程序员来做这个事情,他们还得先学习这个开源报表工具的界面.功能使用操作等等,尤其是很多开源 ...

  9. 简表(JOR),开源报表工具

    网站www.jatools.com               论坛 bbs.jatools.com 在eclipse中导入jor工程 简表(JOR),是一款国产的开源java报表工具,核心代码来自于 ...

最新文章

  1. matlab 卷积conv2用法
  2. 与应用程序松耦合的报表开发组织
  3. 在mac操作系统下,Intellij IDEA默认jdk版本的修改
  4. 有没有简单优雅的方法来定义单例? [重复]
  5. 清除扇区和低格哪个好_C++入门篇(四十五),结点删除与链表的清除
  6. iphone:关于沙盒 存储路径
  7. 高效程序员的45个习惯 pdf_如何培养孩子高效学习?养成高效学习的7 个习惯。建议收藏...
  8. JVM调优总结(十一)JVM 几个重要的参数
  9. 什么样的备份容灾系统才真正适合云化数据中心?| 技术头条
  10. myEclipse-svn的安装使用
  11. MapStruct 代码生成器
  12. 装箱问题 vijos
  13. 用计算机知道手机号码,知道手机号怎么整贱人-原来微信的“+”号还有这些隐藏用法?居然可以一键检测真假好友...
  14. task7b-TP53突变与否的TNBC病人基因表达相关性改变
  15. 缠中说禅学习整理——线段定义及划分(一)
  16. mongodb 复制集部署(主从升级版)
  17. 计算机底层01-计算机发展史
  18. Mac使用技巧:快捷键也可清理Safari浏览数据!
  19. 100道Java高频面试题(阿里面试官整理)
  20. 组合设计会更灵活,速度更快。

热门文章

  1. 微信小程序瀑布流实现
  2. CCF认证练习题-西西艾弗岛的购物中心
  3. 网络——tcp/ip
  4. 安装x86版 OS X的系统要求
  5. ionic3开发系列——ionic3懒加载配置
  6. windows10系统提示不允许使用你正在尝试的登录方式,请联系网络管理员了解详细信息
  7. 唐发德老师:精益生产管理导师(唐发德)
  8. Java Dome(实现一个简易版QQ聊天室)
  9. 二、创建基础的drill集群
  10. 通过iptable进行流量转发