如何解决如何使用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 report
exporter.setExporterOutput(new SimpleOutputStreamExporterOutput(xlsReport)); //Your ByteArrayOutputStream
SimpleXlsReportConfiguration configuration = new SimpleXlsReportConfiguration();
configuration.setonePagePerSheet(true);
configuration.setDetectCellType(true);
configuration.set //The other properties you like to set
exporter.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);
}
%>
如何解决?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。