多语言展示
当前在线:245今日阅读:167今日分享:16

jasperreports中文学习入门教程:[7]导出报表

jasperreports中文学习入门教程:[7]导出报表
工具/原料

jasperreports报表

方法/步骤
1

我们已经看到在前面的章节中,如何打印和查看的JasperReport生成的文档。在这里,我们将看到如何在其他格式,如PDF,HTML和XLS转换或导出这些报告。 Facade类net.sf.jasperreports.engine.JasperExportManager提供实现这一功能。导出方式转变JasperPrint对象(.jrprint文件)导入到不同的格式。 下面的代码(JasperReportExport.java)演示了JasperReport文档的导出过程。该JasperExportManager提供的方法将报表导出成PDF,HTML和XML。导出到使用的类net.sf.jasperreports.engine.export.JRXlsExporter的XLS格式。此代码生成以下三个文件: · sample_report.pdf· sample_report.htmll· sample_report.xls导出为其他格式让我们来写一个报表模板。在JRXML文件的内容 (C:\tools\jasperreports-5.0.1\test\jasper_report_template.jrxml) 如下:

2

                                                                          

3

                            

4

                                                                        

5

verticalAlignment='Middle'>                    

6

                                           

7

问件C:\tools\jasperreports-5.0.1\test\src\com\yiibai\DataBeanList.java 的内容如下:package com.yiibai; import java.util.ArrayList; public class DataBeanList {   public ArrayList getDataBeanList() {      ArrayList dataBeanList = new ArrayList();       dataBeanList.add(produce('Manisha', 'India'));      dataBeanList.add(produce('Dennis Ritchie', 'USA'));      dataBeanList.add(produce('V.Anand', 'India'));      dataBeanList.add(produce('Shrinath', 'California'));       return dataBeanList;   }    /**    * This method returns a DataBean object,    * with name and country set in it.    */   private DataBean produce(String name, String country) {      DataBean dataBean = new DataBean();      dataBean.setName(name);      dataBean.setCountry(country);      return dataBean;   }}

8

写一个主类文件JasperReportFill.java,它从类(DataBeanList)获取java bean集合,并将其传递到Jasper 报表引擎,填补了报表模板。把它保存到目录 C:\tools\jasperreports-5.0.1\test\src\com\yiibai.

9

package com.yiibai; import java.util.ArrayList;import java.util.HashMap;import java.util.Map; import net.sf.jasperreports.engine.JRException;import net.sf.jasperreports.engine.JRExporterParameter;import net.sf.jasperreports.engine.JasperExportManager;import net.sf.jasperreports.engine.JasperFillManager;import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;import net.sf.jasperreports.engine.export.JRXlsExporter; public class JasperReportFill {   @SuppressWarnings('unchecked')   public static void main(String[] args) {      String sourceFileName = 'c://tools/jasperreports-5.0.1/'            + 'test/jasper_report_template.jasper';      String printFileName = null;      DataBeanList DataBeanList = new DataBeanList();      ArrayList dataList = DataBeanList.getDataBeanList();      JRBeanCollectionDataSource beanColDataSource =         new JRBeanCollectionDataSource(dataList);       Map parameters = new HashMap();      try {         printFileName = JasperFillManager.fillReportToFile(sourceFileName,            parameters, beanColDataSource);         if (printFileName != null) {            /**             * 1- export to PDF             */            JasperExportManager.exportReportToPdfFile(printFileName,                  'C://sample_report.pdf');             /**             * 2- export to HTML             */            JasperExportManager.exportReportToHtmlFile(printFileName,                  'C://sample_report.htmll');

11

/**             * 3- export to Excel sheet             */            JRXlsExporter exporter = new JRXlsExporter();             exporter.setParameter(JRExporterParameter.INPUT_FILE_NAME,                  printFileName);            exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME,                  'C://sample_report.xls');             exporter.exportReport();         }      } catch (JRException e) {         e.printStackTrace();      }   }}

12

生成报表让我们用我们的常规Ant构建过程编译和执行上述文件。 build.xml文件如下图所示:                                                                                                                                                    

13

进入命令提示符,然后转到目录C:\tools\jasperreports-5.0.1\test,其中build.xml已放置。最后执行的命令 ant -Dmain-class=com.yiibai.JasperReportFill. 输出如下所示:

14

C:\tools\jasperreports-5.0.1\test>ant -Dmain-class=com.yiibai.JasperReportFillBuildfile: C:\tools\jasperreports-5.0.1\test\build.xml clean-sample:   [delete] Deleting directory C:\tools\jasperreports-5.0.1\test\classes   [delete] Deleting: C:\tools\jasperreports-5.0.1\test\jasper_report_template.jasper   [delete] Deleting: C:\tools\jasperreports-5.0.1\test\jasper_report_template.jrprint compile:    [mkdir] Created dir: C:\tools\jasperreports-5.0.1\test\classes    [javac] C:\tools\jasperreports-5.0.1\test\baseBuild.xml:28:    warning: 'includeantruntime' was not set, defaulting t    [javac] Compiling 4 source files to C:\tools\jasperreports-5.0.1\test\classesEND

同为比较常用的报表工具,FineReport的报表导出操作不需要代码,FineReport中所有的报表代码细节对用户是隐藏的,呈现出的是是可视化的设计过程,具体到报表导出,如下:
1

1. 描述FineReport导出即可以在设计器中的输出模板,也可以在浏览器端输出为各种格式,还可以通过Api接口导出。2. 设计器中导出设计器中导出顾名思义,就是指不预览模板查看效果,直接在设计器里面通过可视化操作导出模板,详细请参照设计器中导出

2

3. 浏览器端导出在浏览器端导出就是指在web端预览模板查看效果之后导出,详细请参照BS端导出3.1 导出机制在浏览器端输出的运行机制是:选择某种输出后,先根据报表内容,在服务器的内存中将页面中的内容全部生成完毕,即生成对应格式的对象;然后再由serverlet直接推送给客户端。报表的输出遵循所见即所得原则,即在浏览器中看到的样子导出的结果就是什么样子,若单元格设置了形态分页预览下,不管是什么导出格式,都是导出显示值而不是实际值。

3

4. API导出通过导出API在程序中导出,详细请查看导出API。设计器中的导出1. 导出格式设计器中的导出格式有如下几种:PDF格式:导出PDF格式文件;Excel格式:导出Excel格式文件,又包含分页导出、原样导出和分页分Sheet导出,他们的区别可参考Excel多种导出方式文档;

4

Word格式:导出Word格式文件,不支持导出悬浮元素;SVG格式(逗号分隔):导出SVG格式文件;文本文件(制表符分隔):导出文本文件;模板(内置数据):导出内置数据模板,把数据直接保存在模板中,不需要数据库,就可以浏览到数据,方便用户进行功能测试或者发送模板给帆软技术进行调试纠错。2. 步骤点击菜单文件>输出,如下图所示,即可对模板进行多种格式的导出:

5

3. 示例下面我们以GettingStarted.cpt导出成PDF样式为例说明导出方法。3.1 打开模板打开模板:%FR_HOME%\WebReport\WEB-INF\reportlets\GettingStarted.cpt。END

推荐信息