Excel导出工具包pentaho report

1.Pentaho Report介绍

> Pentaho
    Pentaho 是 Java 平台上著名的商业智能(BI)项目。它包含多个产品以及产品插件、辅助工具,包括 BI 平台(BI Platform)、ETL、报表、联机分析、数据挖掘等。

> Pentaho report
    Pentaho Reporting 是 Pentaho 的报表解决方案。它原先是开源项目 JFreeReport,后来容纳进 Pentaho。Pentaho Reporting 采用开源协议是 LGPL。
    Pentaho 报表有两种使用方式,一种是基于 BI Server(不需要写代码),一种是嵌入应用方式(传统 JFreeReport 的方式)。报表主要通过报表设计器(Pentaho Report Designer, PRD)来定义。定义好的报表保存为后缀为 prpt 的文件。
    支持导出数据类型:PDF、EXCEL(03\07)、RTF、HTML、TXT、CSV。

2.Pentaho Report Designer(PRD)介绍

报表设计器( Pentaho Report Designer, PRD ) 是一个Java桌面程序。
从http://reporting.pentaho.com/下载,下载后解压即可使用 (已设置JAVA环境)。
通过report-designer.bat启动PRD。

报表结构:
    Page Header:页头这里设置的内容将在每一页显示(报表出现分页)
    Report Header:报表头只在报表的开头显示(如果出现颁不会显示在中首页后的其它页)
    Details Header:配置Details的列名
    Details:这里配置多行数据的列(会根据数据的行数据显示)
    Report Footer:类似Report Header 只在报表的结尾显示
    Page Footer:类似Page Header在每页的结尾显示

    数据源:
    JDBC
    METADATA (元数据)
    Pentaho Data Integration(kettle)
    OLAP
    XML
    TABLE
    Advanced (SCRIPTABLE、 JAVA METHOD INVOCATION 、 COMMUNITY DATA ACCESS)

图表

3.Pentaho Report 工具包介绍

入口方法:
    com.bbd.report.ReportEngine
        |
        |_ generateReport  -----生成excel报表
        |
        |_ generateReport  -----生成非excel报表

生成非excel报表参数:
    Optional<String> resource:报表文件路径
   ArrayListMultimap<StructureEnum,ReportElementModel> elements:报表结构和所包含元素对象
    Map<String,Object> params:报表传入参数
    ExportStrategy exportStrategy:导入模版类型
    OutputStream outputStream:输出流

关键类关系

3.Demo

实现主要步骤:定义报表模版 -》 添加依赖 -》 代码构建报告元素 -》 生成报告

一、在PRD中设计报告样式;
    请参考:《Pentaho报表使用指南.pdf》![下载](/download/Pentaho报表使用指南.pdf)

二、maven依赖:
    <dependency>
        <groupId>com.bbd.report</groupId>
        <artifactId>report</artifactId>
        <version>1.0.1</version>
    </dependency>

三、生成报告:
    Optional<String> resource = Optional.of("subReport.prpt");

    TableDataModel tableDataModel = new TableDataModel(new Object[][]{{1,1},{9,9}},new Object[]{"ID","Value"});

    ReportElementModel reportElementModel = new ReportElementModel();
    reportElementModel.setName("sub");
    reportElementModel.setDataName("table1");
    reportElementModel.setElementEnum(ElementEnum.REPORT_DEFINITION_TABLE);
    reportElementModel.setDataModel(tableDataModel);

    ArrayListMultimap<StructureEnum,ReportElementModel> elements = ArrayListMultimap.create();
    elements.put(StructureEnum.REPORT_HEADER, reportElementModel);

    File f = new File(path);
    OutputStream out= null;
    try {
        out = new FileOutputStream(f);
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    }

    ReportEngine re = new ReportEngine();
    re.generateReport(resource,elements,null,ExportEnum.PDF,out);

实现效果图 

3.优缺点

缺点:
    学习成本较高(报表样式)
    某些图标无法实现
    有待继续扩展

优点:
    开发效率较高
    可实现复杂报表
    支持EXCEL、RTF、PDF等主流格式
    支持各种数据源

参考资料:

http://blog.csdn.net/zhaizhisheng/article/details/45190663
http://blog.csdn.net/zhaizhisheng/article/details/45396553
https://wenku.baidu.com/view/5fbcea57b52acfc789ebc9d6.html
http://www.docin.com/p-1327977879.html
时间: 2024-10-24 22:39:12

Excel导出工具包pentaho report的相关文章

excel导出工具包

package com.ljyq.central.common.util; import org.apache.commons.collections4.CollectionUtils;import org.apache.commons.collections4.MapUtils;import org.apache.commons.lang3.StringUtils;import org.apache.poi.hssf.usermodel.HSSFWorkbook;import org.apac

二十六、【开源框架】EFW框架Winform前端开发之Grid++Report报表、条形码、Excel导出、图表控件

回<[开源]EFW框架系列文章索引>        EFW框架源代码下载V1.2:http://pan.baidu.com/s/1hcnuA EFW框架实例源代码下载:http://pan.baidu.com/s/1o6MAKCa 前言:本章介绍除DotNetBar2控件套件之外的另外一些常用控件,包括Grid++Report报表.条形码.Excel导出.图表控件ZedGraph:类似这些控件网上免费开源的太少了,经过一番对比和使用感受最后决定把这几个控件整合到EFW框架中供大家选择使用: 本

TP5.0源生Excel导出

PHPExcel类在TP5里边并不能很好的兼容,使用起来很麻烦. 不像是tp3.2那样直接import()加进来就能new,因为它里边的命名空间找不到.总是说undefined class. 如果是使用composer安装的PHPExcel的话可能好点吧. 因为我是下载下来后直接放到extend里边使用的,感觉不是很好用. 所以为了方便直接写的源生的导出. tp5在更新了一次之后说明文档上标明,如果能够不使用DB类的情况下不要使用DB类,尽量使用模型进行CURD操作. 但是如果用源生的php代码

Pentaho Report Designer 入门教程(三)

采用Pentaho Report Designer5.1版本,也是最新的版本. 一.       安装和介绍 介绍部分内容略,首先安装jdk,并配置java相关环境变量,下载pentaho report并解压,直接运行即可. 二.       第一个示例 三.在Swing程序中集成 四.在j2ee程序中集成 ?  新建web项目 ?  编写ant脚本,编译运行项目 <?xml version="1.0"encoding="UTF-8" standalone=&

Pentaho Report Designer 报表系统 - 入门详解

目录 简介 安装与配置 环境要求 运行方式 使用教学 数据源配置与原始数据获取 报表布局设计与格式化 报表预览与发布 报表访问与获取 参考材料 简介 ? Pentaho Report Designer(以下简称PRD)是Pentaho开源系统中的数据报表模块,预期作为Java项目中的报表功能来集成使用. ? 现阶段需要在PRD中提前设计好报表方式才能输出报表供前后端调取,因此本文还会介绍关于PRD的用法. ? 本文中使用的版本为PRD7.1.0.0 安装与配置 软件包下载地址:https://s

displaytag的Excel导出实践

本文转自 http://lingceng.iteye.com/blog/1820081/ Displaytag官网有1.0, 1.1, 1.2等,注意找到对应的版本.源码和API可以在Maven库中找到.   常规的使用不是问题,这里说说关于Excel导出的问题,中文乱码,使用POI等.我使用的是Displaytag1.1. 基本导出功能   这种情况只需引入displaytag-1.1.jar.   设置column属性media="html"将不会导出,media="ex

使用pentaho report 开发web报表

使用pentaho report 开发web报表 1.   文档说明 java开源报表软件中,pentaho report算是比较优秀的:能够满足大多数应用,足以和国内商业报表媲美:现记录实际开发报表完整过程教程,让初学者快速入门并应用到项目中. 2.   开发环境说明 1)      工具环境:pentaho report designer5.3.tomcat6.jdk6.Eclipse Java EE (4.3) 2)     mysql以及示例数据库saikla 3)     mysql驱

ExtJS实现Excel导出

1. 使用POI组件实现excel导出功能 //获取问题列表 List<Suggestion> targetStockList = suggestionService.getSuggestionList(map);           //创建一个新的Excel         HSSFWorkbook workBook = new HSSFWorkbook();         //创建sheet页         HSSFSheet sheet = workBook.createSheet

java excel导出

1.  Excel导出的核心方法在ExportExcel类中,使用时请将该类完整的引入. 1 import java.io.IOException; 2 import java.io.OutputStream; 3 import java.lang.reflect.Field; 4 import java.lang.reflect.InvocationTargetException; 5 import java.lang.reflect.Method; 6 import java.text.Si