我已经编写了一些代码来在网站上显示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,0,bytes.length);
outStream.flush();
outStream.close();
} catch (Exception ex) {
out.println("Error " + ex);
}
%>
如何解决?
如果您使用的不是JasperReports的旧版本,则使用不推荐使用的方法,最重要的是,您不会将其传递JasperPrint
给导出器。
没有输入源提供给出口商。
您需要 填写报告 ,使用JasperFillManager.fillReport
示例代码(碧玉报告v5或更高版本)
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();
问题是“要求用户输入2个正整数,打印这两个正整数之间的所有素数,每行5个素数,然后打印总数。” 我没有看到我的代码的任何输出。谢谢在这里输入图像描述
问题内容: 我使用命令:运行docker图像,但它不显示颜色输出。如果我还是再次运行,则输出将正确地以彩色输出。 重击提示图像 我的bash_profile和bash_prompt 问题答案: 该OP SolomonT报道称,有做的工作: 和费尔南多·科雷亚增加的评论: 为了同时获得色彩支持和工作,我结合了两个示例: 正如chepner所评论(较早的回答)那样,由于是由调用的,因此是来源(属于交互
我正在使用 iframe 并在主页中创建四个框架.jsp就像这样...... 还有菜单。jsp,其中包含4个链接,当我单击一个链接并在href标记中时,我正在调用该操作(在struts.xml中定义),该操作正在调用一个类,该类正在返回一些数据,并在SUCCESS上转发给CUSTOMERMAIN。jsp文件,但由于iframe,它没有显示任何jsp文件。 如果我不使用iFramework…它工作正
问题内容: 我正在尝试请求权限以获取用户的当前位置。 我的日志记录表明,在查询时,我的应用当前没有此权限,但是在不调用任何内容时,则显示。 我的Google地图代码(实现和)位于中。 我设法使该功能在该应用程序的其他“活动”中成功运行,这只是带有Google地图的功能。将其放在或中的方法中(它需要去的地方),该方法不起作用。 有任何想法吗?这与我的Activity的类()有关,还是与Google地
问题内容: 例如,我有要显示表单输入错误的表单。 如果有一些错误,我需要在输入标签附近显示红色徽章(带有“悬停显示错误”)。如果用户将鼠标悬停在红色徽章上,他将使用AngularJS UI Bootstrap工具提示 查看错误列表。我不想将错误列表放到tooltip-html-unsafe属性中,因为它不方便编辑和维护。 此代码更具声明性: 比这段代码: 如何使用AngularJS UI Boot
gdb在退出时会提示: A debugging session is active. Inferior 1 [process 29686 ] will be killed. Quit anyway? (y or n) n 如果不想显示这个信息,则可以在gdb中使用如下命令把提示信息关掉: (gdb) set confirm off 也可以把这个命令加到.gdbinit文件里。