如何使用jsp避免不显示“没有输入源提供给导出器”以显示excel
如果您使用的不是JasperReports的旧版本,则使用不推荐使用的方法,最重要的是,您不会将其传递JasperPrint给导出器。
没有输入源提供给出口商。
您需要 ,使用JasperFillManager.fillReport
JasperDesign jasperDesign = JRXmlLoader.load(new FileInputStream(reportFile));JasperPrint jasperPrint = JasperFillManager.fillReport(jasperDesign, parameters, conn);JRXlsExporter exporter = new JRXlsExporter();exporter.setExporterInput(new SimpleExporterInput(jasperPrint)); //The JasperPrint, filled reportexporter.setExporterOutput(new SimpleOutputStreamExporterOutput(xlsReport)); //Your ByteArrayOutputStreamSimpleXlsReportConfiguration configuration = new SimpleXlsReportConfiguration();configuration.setonePagePerSheet(true);configuration.setDetectCellType(true);configuration.set //The other properties you like to setexporter.setConfiguration(configuration);exporter.exportReport();解决方法
我已经编写了一些代码来在网站上显示excel。
但是我得到这个例外
net.sf.jasperreports.engine.JRRuntimeException:没有输入源提供给导出器。
我的密码导入jsp
<%@ page import='java.io.*'%><%@ page import='java.sql.Connection'%><%@ page import='java.sql.DriverManager'%><%@ page import='java.util.HashMap'%><%@ page import='java.util.Map'%><%@ page import='net.sf.jasperreports.engine.*'%><%@ page import='java.io.ByteArrayOutputStream'%><%@ page import='net.sf.jasperreports.view.JasperViewer'%><%@ page import='net.sf.jasperreports.engine.export.*'%>
jsp代码导出到excel
<%Connection conn = null;String no1 = request.getParameter('no1');String no2 = request.getParameter('no2');System.out.println('get value ' + no1 + ' ' +no2);try { Class.forName('com.mysql.jdbc.Driver').newInstance(); conn = DriverManager.getConnection('jdbc:mysql://localhost:3306/ams2','root','passwd1234'); File reportFile = new File (application.getRealPath('//jasper//report//Blank_A4_2.jasper')); Map parameters = new HashMap(); parameters.put('no1',no1); parameters.put('no2',no2); System.out.println('123 '+parameters); ByteArrayOutputStream xlsReport = new ByteArrayOutputStream(); JRXlsExporter exporter = new JRXlsExporter(); exporter.setParameter(JRExporterParameter.OUTPUT_STREAM,xlsReport); exporter.setParameter(JRExporterParameter.OUTPUT_FILE,'C:'); exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME,'sample.xls'); exporter.exportReport(); byte bytes[] = new byte[10]; bytes = xlsReport.toByteArray(); response.setContentType('application/vnd.ms-excel'); response.setContentLength(bytes.length); xlsReport.close(); ServletOutputStream outStream = response.getOutputStream(); outStream.write(bytes,bytes.length); outStream.flush(); outStream.close();} catch (Exception ex) { out.println('Error ' + ex);} %>
如何解决?
相关文章: