`

(八)Java jaspereport程序导出pdf及excel报表

阅读更多
jaspereport导出报表代码很容易。

加载jasper文件,接收map参数导出报表至指定目录。

        /**
	 * jasper文件,导出pdf文件
	 * 
	 * @param fileName
	 * @param params
	 * @param exportPath
	 */
	public String exportPDFReport(String Folder, String exportPath, String reportName,
			Map params) {
		ReportService rs = new ReportService();
		// 根据报表名字,得到报表jasper文件名字
		String jasperName = rs.getReportEnName(reportName);

		File file = new File(Folder + "\\" + jasperName + ".jasper");

		exportPath = exportPath + "\\" + System.currentTimeMillis() + ".pdf";

		JasperReport report = null;
		JasperPrint jasperPrint = null;
		try {
			report = (JasperReport) JRLoader.loadObject(file);
		} catch (JRException e) {
			e.printStackTrace();
		}
		
		//取数据库连接key
		String key = rs.getConnectionKeyWords(jasperName);

		// 获得jdbc连接
		Connection conn = new DBUtil().getConnection(key);

		try {
			jasperPrint = JasperFillManager.fillReport(report, params, conn);
		} catch (JRException e) {
			e.printStackTrace();
		} finally {
			if (conn != null) {
				try {
					conn.close();
				} catch (SQLException e) {
					e.printStackTrace();
				}
			}
		}

		JRPdfExporter pdfExporter = new JRPdfExporter();
		pdfExporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
		pdfExporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME,
				exportPath);// exportPath=路径+文件名
		try {
			pdfExporter.exportReport();

			System.out.println("export pdf success!");
		} catch (JRException e) {
			e.printStackTrace();
		}
		
		return exportPath;
	}
	
	/**
	 * jasper文件,导出EXCEL文件
	 * @param Folder
	 * @param reportName
	 * @param params
	 * @return
	 */
	public String exportEXCELReport(String Folder, String exportPath, String reportName,
			Map params) {
		ReportService rs = new ReportService();
		// 根据报表名字,得到报表jasper文件名字
		String jasperName = rs.getReportEnName(reportName);

		File file = new File(Folder + "\\" + jasperName + ".jasper");

		exportPath = exportPath + "\\" + System.currentTimeMillis() + ".xls";

		JasperReport report = null;
		JasperPrint jasperPrint = null;
		try {
			report = (JasperReport) JRLoader.loadObject(file);
		} catch (JRException e) {
			e.printStackTrace();
		}
		
		//取数据库连接key
		String key = rs.getConnectionKeyWords(jasperName);

		// 获得jdbc连接
		Connection conn = new DBUtil().getConnection(key);

		try {
			jasperPrint = JasperFillManager.fillReport(report, params, conn);
		} catch (JRException e) {
			e.printStackTrace();
		} finally {
			if (conn != null) {
				try {
					conn.close();
				} catch (SQLException e) {
					e.printStackTrace();
				}
			}
		}

		JRXlsExporter excelExporter = new JRXlsExporter();
		excelExporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
		excelExporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, exportPath);
		try {
			excelExporter.exportReport();

			System.out.println("export excel success!");
		} catch (JRException e) {
			e.printStackTrace();
		}
		
		return exportPath;
	}

程序依赖的jar,可能是这几个具体记不清。
0
0
分享到:
评论
2 楼 Apple_2011 2013-07-01  
java.lang.ClassCastException: cannot assign instance of net.sf.jasperreports.engine.base.JRBaseStaticText to field net.sf.jasperreports.engine.base.JRBaseParagraph.paragraphContainer of type net.sf.jasperreports.engine.JRParagraphContainer in instance of net.sf.jasperreports.engine.base.JRBaseParagraph
at java.io.ObjectStreamClass$FieldReflector.setObjFieldValues(ObjectStreamClass.java:2034)
at java.io.ObjectStreamClass.setObjFieldValues(ObjectStreamClass.java:1207)
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1952)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1870)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1752)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1328)
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1946)
at java.io.ObjectInputStream.defaultReadObject(ObjectInputStream.java:479)
at net.sf.jasperreports.engine.base.JRBaseTextElement.readObject(JRBaseTextElement.java:1199)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:969)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1848)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1752)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1328)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:350)
at java.util.ArrayList.readObject(ArrayList.java:593)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:969)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1848)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1752)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1328)
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1946)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1870)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1752)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1328)
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1946)
at java.io.ObjectInputStream.defaultReadObject(ObjectInputStream.java:479)
at net.sf.jasperreports.engine.base.JRBaseReport.readObject(JRBaseReport.java:732)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:969)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1848)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1752)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1328)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:350)
at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:90)
at com.letlink.monitor.action.ModuleListAction.process(ModuleListAction.java:1066)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:274)
at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:194)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.letlink.util.LoginFilter.doFilter(LoginFilter.java:68)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:75)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:879)
at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:600)
at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1703)
at java.lang.Thread.run(Thread.java:662)

我在加载jasper文件的时候报这个错, 请问下是什么原因?
1 楼 雪之牵 2013-04-16  

相关推荐

    JasperReport与Java程序,导出不同格式的报表,包括pdf,excel,html,报表打印等功能

    4. **导出报表**:JasperExportManager类提供了多种导出方法,如`exportReportToPdf()`, `exportReportToHtmlFile()`, 和 `exportReportToXlsFile()`,分别用于导出为PDF、HTML和Excel格式。这些方法接收JasperPrint...

    使用jasperreports制作报表(导出pdf excel html)

    4. **导出报表**:`JasperExportManager.exportReportToPdfFile()`, `JasperExportManager.exportReportToHtmlFile()` 和 `JasperExportManager.exportReportToXlsFile()` 分别用于导出报表为PDF、HTML和Excel格式。...

    Java程序导出pdf报表文件之多语言应用

    本主题聚焦于“Java程序导出pdf报表文件之多语言应用”,这涉及到使用Java后端技术和PDF处理库,如PDFBox,来实现数据的可视化呈现,并确保支持多种语言,以满足全球化的业务需求。 首先,PDFBox是Apache软件基金会...

    java导出文件到 pdf,excel,word

    在Java编程环境中,导出数据到PDF、Excel和Word格式是一项常见的需求,这通常涉及到文件处理和格式转换。以下是对这个主题的详细说明: 一、PDF(Portable Document Format)文件导出 PDF是一种通用的文件格式,...

    java开发水晶报表所有类包及导出PDF实例

    Java开发中的水晶报表(Crystal Reports)是一款强大的报告生成工具,常用于企业级应用,能够帮助开发者设计复杂的报表并导出为多种格式,如PDF、Excel等。本实例将重点讲解如何在Java环境中集成和使用水晶报表,...

    java根据模板导出PDF详细教程(包含统计图)

    本文将深入探讨如何使用Java来根据模板导出包含统计图的PDF文档。主要涉及的技术包括iText库、FreeMarker模板引擎以及可能的数据可视化工具。 首先,iText是一个强大的Java库,专门用于创建和操作PDF文档。它提供了...

    导出pdf、csv、excel报表

    "导出pdf、csv、excel报表"这一主题涵盖了三种常见的数据格式,它们在数据交换、存储和分析中扮演着关键角色。以下将详细介绍这些格式及其相关知识点。 PDF(Portable Document Format)是一种用于保留文档布局和...

    java绝对生成excel报表

    在Java编程环境中,生成Excel报表是一项常见的任务,尤其在数据处理和数据分析领域。"java绝对生成excel报表"这个标题暗示了我们可以...通过熟练掌握这些知识点,你就能高效地在Java程序中生成各种复杂的Excel报表了。

    java poi导出图片到excel示例代码

    Java POI导出图片到Excel示例代码详解 Java POI是Java开发中常用的开源库,用于读写Microsoft Office文件格式,包括Excel、Word、PowerPoint等。今天,我们将介绍如何使用Java POI将图片导出到Excel中。 标题解释 ...

    帆软报表导出各种格式(excel/word/pdf等)

    导出Excel格式: Excel是一种广泛使用的电子表格应用程序,非常适合数据分析和共享。帆软报表提供了一种灵活的方式,可以将设计好的报表导出为Excel格式。这通常涉及到报表查询、数据填充以及格式转换。用户可以通过...

    cognos 自定义导出PDF和Excel.doc

    - `expExcel()` 和 `expPDF()`:这两个函数分别负责导出Excel和PDF格式。它们首先调用`getObjectName()`函数获取报表对象名,然后使用`eval()`函数执行相应的导出命令。 示例代码如下: ```javascript function ...

    java Excel文件转PDF文件

    本文将详细介绍如何使用Apache POI库处理Excel数据,以及使用iText库将这些数据导出为PDF格式。Apache POI是Java中处理Microsoft Office格式文件(如Excel)的库,而iText则是用于创建和编辑PDF文档的库。 首先,...

    java导出PDF、导出漂亮PDF、导出指定格式PDF

    我们在项目当中经常要导出pdf文档,pdf文档还要按一定的格式导出,以下介绍导出pdf文档功能: 1)支持A4纸大小导出 2)指定文字显示的位置 3)支持表格展示数据 4)添加水印 5)代码全开源,在多个项目中使用,放心...

    java导出excel pdf 报表

    在Java开发中,导出Excel和PDF报表是常见的需求,特别是在数据分析、数据展示以及报告生成等场景下。本文将深入探讨如何使用Java实现这一功能,包括处理Excel和PDF的库、基本操作以及优化技巧。 首先,Java中常用的...

    导出 Excel 以及转化为 PDF 导出

    本篇将深入探讨如何使用 Java 库 `easypoi` 和 `Spire.XLS.Free` 实现 Excel 的导出及将其转化为 PDF 文件的过程。 首先,`easypoi` 是一个基于 Apache POI 的 Java 框架,专门用于处理 Office 文档,包括 Excel。...

    ireport+springMVC 导出pdf excel 子报表

    本教程将深入探讨如何使用ireport工具与SpringMVC框架相结合,实现PDF和Excel格式的导出,以及如何处理子报表的功能。以下是相关知识点的详细说明: 1. **ireport**: iReport是一款开源的报告设计工具,它支持...

    Java 报表导出组件,支持Excel PDF 图片等多种格式

    报表导出是指在Java应用程序中,将处理后的数据以特定格式(如Excel、PDF或图片)保存或分享给用户的过程。这通常涉及到数据处理、格式转换和文件生成等多个步骤。在Java世界里,有多种成熟的库可以帮助开发者实现...

    使用ITEXT导出PDF、WORD,APACHE POI导出EXCEL报表文件

    本文将深入探讨如何使用ITEXT库导出PDF和Word,以及利用Apache POI库导出Excel报表文件。 首先,让我们来了解ITEXT库。ITEXT是一个开源Java库,专门用于创建和修改PDF文档。使用ITEXT,你可以方便地生成包含文本、...

    使用Aspose.Cells for java完成复杂Excel报表导出

    这篇博客“使用Aspose.Cells for Java完成复杂Excel报表导出”显然会深入探讨如何利用这个库来创建复杂的电子表格报告,而无需依赖Microsoft Excel本身。Aspose.Cells提供了丰富的API,能够帮助程序员实现对Excel...

    Excel报表导出,复杂Excel模板导出(带单元格合并),jxls2

    在IT行业中,数据的展示和分析常常离不开Excel报表的运用,尤其在企业级应用中,高效、灵活的数据导出功能显得尤为重要。本项目专注于解决这一问题,通过使用`jxls2`库,能够实现复杂Excel模板的导出,包括单元格的...

Global site tag (gtag.js) - Google Analytics