`

(八)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  

相关推荐

Global site tag (gtag.js) - Google Analytics