`
苏小驰
  • 浏览: 17080 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Ireport,JAVA报表制作并导出(pdf、excel、word)

阅读更多

ireport使用javabean作为数据源生成报表并导出 (pdf、excel、word)

1.首先需要下载报表模板制作软件,我使用的是iReport-5.6.0。下载好后开始画自己的模板。最好是先建一个工厂类,里面放一些静态数据,方便测试连接成功与否。然后点击工具菜单,选择选项,找到classpath,新建一个folder,路径就是tomcat下项目的classes(C:\apache-tomcat-6.0.35\webapps\Crt\WEB-INF\classes)。如图所示是工厂测试类:

      然后配置数据源,在Connections/Datasources界面新建数据连接,类型选择JavaBeans set datasource,名字随便起,Factory class 填工厂测试类的路径(com.crt.alarmFactory),勾选collections of javabeans,static method 那一栏写getBeanCollection。然后点击test测试。测试成功后,在新的模板页面点击preview右侧的按钮(抱歉忘了叫啥了),选择javabean datasource,内容就是报表内容对应的实体类路径(com.crt.bean.tbLog)。加载出该类所有的属性。选择自己需要属性。在组建面板中选择,拖动Fields下自己需要的属性到页面中,更改对应的中文列名,调整好自己需要的样式。最后在说一下字体编码的设定:选中标签,字体选择宋体,pdf font name 选择STSong-Light,勾上pdf embedded,pdf encoding 选择UniGB-UCS2-H (Chinese Simplified)。至此,前端模板制作部分结束。

       将制作好的模板(.jrxml文件)保存在自己定义好的文件夹下。下面直接贴出控制类中的代码:

if(dotype.equals("pdf")){
	JasperDesign jasperDesign;
	jasperDesign = JRXmlLoader.load("D:\\log.jrxml");
	JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign);
	JRDataSource dataSource = new JRBeanCollectionDataSource(loglist);
	JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, null, dataSource);
	byte[] bytes = JasperExportManager.exportReportToPdf(jasperPrint);
	response.setHeader("Content-Disposition", "attachment;filename=temp.pdf");
	response.setContentType("application/pdf");
	response.setContentLength(bytes.length);
	ServletOutputStream ouputStream = response.getOutputStream();
	ouputStream.write(bytes, 0, bytes.length);
	ouputStream.flush();
	ouputStream.close();
	}
	else if(dotype.equals("excel")){
	JasperDesign jasperDesign;
	jasperDesign = JRXmlLoader.load("D:\\log.jrxml");
	JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign);
	JRDataSource dataSource = new JRBeanCollectionDataSource(loglist);
	JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, null, dataSource);
	response.setContentType("application/vnd.ms-excel");  
	String defaultname="export.xls";  
	String fileName = new String(defaultname.getBytes("gbk"), "utf-8");  
	response.setHeader("Content-disposition", "attachment; filename="+ fileName);  
	ServletOutputStream ouputStream = response.getOutputStream();  
	JRXlsExporter exporter=new JRXlsExporter();
	exporter.setParameter(JRXlsExporterParameter.JASPER_PRINT, jasperPrint);
	exporter.setParameter(JRXlsExporterParameter.OUTPUT_STREAM, response.getOutputStream());
	exporter.setParameter(JRXlsExporterParameter.IS_ONE_PAGE_PER_SHEET, Boolean.FALSE);
	exporter.setParameter(JRXlsExporterParameter.IS_WHITE_PAGE_BACKGROUND, Boolean.FALSE);
	exporter.setParameter(JRXlsExporterParameter.IGNORE_PAGE_MARGINS,Boolean.TRUE);
	response.setHeader("Content-Disposition", "attachment;filename=first.xls");
	response.setContentType("application/vnd_ms-excel");
	exporter.exportReport();
	ouputStream.flush();  
	ouputStream.close();  
	}
	else if(dotype.equals("word")){
	JasperDesign jasperDesign;
	jasperDesign = JRXmlLoader.load("D:\\log.jrxml");
	JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign);
	JRDataSource dataSource = new JRBeanCollectionDataSource(loglist);
	JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, null, dataSource);
	response.setContentType("application/vnd.ms-excel");  
	String defaultname="export.doc";  
	ServletOutputStream ouputStream = response.getOutputStream();  
	String fileName = new String(defaultname.getBytes("GBK"), "utf-8");  
	response.setHeader("Content-disposition", "attachment; filename=" + fileName);  
	JRAbstractExporter exporter = new JRDocxExporter();
	exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);  
	exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, response.getOutputStream());  
	exporter.exportReport(); 
	ouputStream.flush();  
	ouputStream.close();  
}

    这里我使用form表单方式请求,然后方法执行完后返回请求页面,页面下放就会弹出下载保存提示。如果页面中还使用ajax,为了不互相干扰,可以使用window.open打开一个小的页面,进行报表的导出。内容的在jsp页面的显示并没有使用ireport,主要是考虑到分页的实现不是很方便,而且样式也不如直接用html语言来的美观。另外是项目中需要的一些jar文件:groovy-all-1.7.5.jar,iTextAsian.jar,jasperreports-5.6.0.jar

  • 大小: 57.5 KB
1
0
分享到:
评论

相关推荐

    java调用ireport生成word报告

    ### Java调用iReport...此外,对于需要生成Excel或PDF格式的报告,只需对上述Java代码中的导出部分稍作调整即可。这种方法不仅提高了报表生成的效率,还大大简化了开发流程,非常适合于需要频繁生成报表的应用场景。

    jasper+ireport+jfreechart导出html.excel.word.pdf

    总的来说,"jasper+ireport+jfreechart导出html.excel.word.pdf"这个主题涵盖了报表设计、数据绑定、图表生成以及多种格式导出的关键技术。通过学习和应用这些工具,开发者可以构建出高效、直观的数据呈现系统,满足...

    iReport 4.8 报表导出工具

    iReport是一款强大的报表设计工具,尤其在版本4.8中,它提供了丰富的功能,使得用户能够轻松地创建、编辑和导出各种类型的报表。这款工具是开源的,基于Java,因此与平台无关,可以在多种操作系统上运行。iReport ...

    ireport导出excel 部分源码

    除了Excel之外,iReport还可以轻松地导出PDF、HTML和Word等格式。例如,对于PDF导出,可以使用`JasperExportManager`类的静态方法`exportReportToPdfStream()`;而HTML和Word则分别可以通过`JRHtmlExporter`和`...

    SpringMVC+jspereport,实现报表分页查看、文件(pdf、excel、word)导出,以及html展示和调用浏览器打印功能实现打印

    通过JasperReport,我们可以将报表导出为PDF、Excel和Word格式。PDF适合阅读和打印,Excel适合数据分析,而Word则便于进一步编辑。在SpringMVC中,这些导出操作通常由控制器处理,将报表转换为目标格式并提供下载...

    java+ireport应用.pdf

    1. JasperReports:这是一个开源的Java报表库,能够帮助开发者将数据以报表的形式展示出来。JasperReports是iReport的报表引擎,它支持多种数据源和输出格式。 2. iReport可视化设计工具:iReport提供了可视化的...

    struts+ireport报表在页面显示,导出,打印功能

    通常,报表的生成会涉及到JasperReport库,使用`JasperFillManager.fillReport()`方法填充报表,然后通过`JasperExportManager.exportReportToXXX()`方法导出为PDF、Excel或Word格式。 4. **页面显示**:在Struts的...

    ireport报表完整资料

    它提供了一个直观的拖放界面,允许用户设计各种类型的报表,包括表格、图表、文本等,支持导出为HTML、PDF、Word等多种格式。 1. **ireport基本概念** - **模板(Templates)**:ireport中的报表设计就是通过模板来...

    ireport导出使用的包

    在IT领域,报表生成是不可或缺的一部分,而Ireport作为一款强大的Java报表设计工具,深受开发者喜爱。它允许用户通过直观的图形界面设计复杂的报表,并能够导出为多种格式,如HTML、Excel、Word等。本文将深入探讨...

    jasperreports打印word格式报表的问题

    JasperReports是一款开源Java库,它允许开发者创建、设计和导出各种类型的报告,包括PDF、HTML、Excel和Word等格式。 描述中的链接指向了一篇博客文章,尽管没有提供具体的内容,但我们可以根据标题推测,博主可能...

    Ireport中文不显示以及乱码十几种解决方案

    10. **导出格式配置**:在导出报表时,如PDF、Excel,确保导出选项中的编码设置为UTF-8。 十一、代码片段修复 11. **添加Java代码片段**:在报表中添加Java代码片段,用于在运行时动态设置字体和编码。 十二、报表...

    利用Jasperreport+IReport进行报表开发

    JasperReport是一个强大的Java报表库,它可以生成多种格式的报表,如PDF、HTML、Excel等。JasperReport支持动态数据,允许开发者设计灵活的布局,并且可以嵌入到任何Java应用中。而IReport则是JasperReport的图形化...

    JasperReport+iReport报表工具

    JSP(JavaServer Pages)是一种用于生成动态网页内容的技术,JasperReport可以将报表导出为JSP页面,便于在Web环境中展示。Java是一种广泛使用的编程语言,JasperReport和iReport都是用Java编写,因此运行这些工具...

    Ireport4.5.0制作3D饼图

    - **JasperReport简介**:JasperReport是一款开源的报表工具,能够帮助开发者创建复杂的报表并导出为多种格式(PDF、Excel、Word等)。它使用XML来定义报表布局,并且支持各种数据源。 - **Ireport**:它是...

    ireport itext jasper-compiler

    开发人员可以使用iReport创建报表模板,通过JasperReports引擎动态填充数据,然后利用iText将报表导出为PDF或RTF等格式,以满足各种展示和分发需求。这些工具在企业级应用中尤其常见,因为它们能处理大量数据并提供...

    jasperreport导出Html xls PDF doc 格式文档源代码

    在IT行业中,报表生成是企业应用中的重要环节,它能够帮助我们有效地展示和分析数据。JasperReport是一款强大的开源报表工具,广泛应用于Java环境中...学习并掌握这些知识,将有助于提升在Java报表开发领域的专业技能。

    JasperReports+ireports制作PDF报表

    5. **导出报表**:最终,通过JasperReports引擎将设计好的报表导出为PDF或其他格式的文件。 #### 五、示例代码与实践 为了更好地理解整个流程,以下是一个简单的示例步骤: 1. **创建数据源**:假设有一个包含...

    iReport3.7帮助文档

    iReport是一款强大的报表设计工具,尤其在Java世界中被广泛使用,它允许开发者创建复杂的报告布局,支持多种数据源,并且能够与Java EE应用程序无缝集成。这个“iReport3.7帮助文档”提供了关于如何使用iReport 3.7...

Global site tag (gtag.js) - Google Analytics