欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

JasperReport输出Excel报表

程序员文章站 2022-03-11 12:02:47
...

Excel格式:

/**  
* 导出报表  
*   
* @param request  
* @param response  
* @param reportFilePath  
* @param params  
* @param con  
* @param fileName  
* @throws JasperReportException  
*/   
public void export(HttpServletRequest request,
		   HttpServletResponse response, 
		   String reportFilePath, Map params,   
		   Connection con,
		   String fileName) throws JasperReportException {   
	JasperPrint jasperPrint = new JasperPrintWithConnection(reportFilePath, params, con).getJasperPrint();   
	// 将填充完的japserPrint放入session中。   
	request.getSession().setAttribute(BaseHttpServlet.DEFAULT_JASPER_PRINT_SESSION_ATTRIBUTE, jasperPrint);   
	// 拿到japserPrintList   
	List jasperPrintList = BaseHttpServlet.getJasperPrintList(request);   
	// 若没有JasperPrintList,则抛出异常   
	if (jasperPrintList == null) {   
	    throw new JasperReportException("在Http Session中没有找到JasperPrint List");   
	}   
	try {   
	    OutputStream ouputStream = response.getOutputStream();   
	    try { 
		response.setContentType("application/xls");   
		response.setCharacterEncoding("UTF-8");   
		if (fileName == null || fileName.equals(""))   
		    response.setHeader("Content-Disposition", "inline; filename=\"noTitle.xls\"");   
		else {   
		    response.setHeader("Content-Disposition", "inline; filename=\""   
			    + URLEncoder.encode(fileName, "UTF-8") + ".xls\"");  

		}   
		// Xls格式的导出器 JRXlsAbstractExport   
		JRXlsAbstractExporter exporter = getXlsExporter();   

		// 在导出器中放入要导出的japserPrintList   
		exporter.setParameter(JRExporterParameter.JASPER_PRINT_LIST, jasperPrintList);   

		exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, ouputStream);   
		// 设置Xls的属性   
		exporter.setParameter(JRXlsAbstractExporterParameter.IS_ONE_PAGE_PER_SHEET, Boolean.FALSE);   
		exporter.setParameter(JRXlsAbstractExporterParameter.IS_WHITE_PAGE_BACKGROUND, Boolean.FALSE);   
		// 导出   
		exporter.exportReport();   
	    } catch (JRException e) {   
		e.printStackTrace();   
		throw new JasperReportException("在生成XLS报表时发生错误!");   
	    } finally {   
		if (ouputStream != null) {   
		    try {   
			ouputStream.close();   
		    } catch (IOException ex) {   
		    }   
		}   
	    }   
	} catch (IOException ioe) {   
	    ioe.printStackTrace();   
	    throw new JasperReportException("从Response中取得OutputStream时发生错误!");   
	} 
}   

 

相关标签: Excel