Der folgende Code erhält ein byte[]
Ergebnis, das für PDF und XLSX funktioniert. Für HTML wird eine Ausnahme ausgelöst.Export JasperReports im HTML-Format
JasperPrint jasperPrint = JasperFillManager.fillReport(report,
params, dataSource != null ? new JRMapArrayDataSource(
dataSource) : new JREmptyDataSource());
ByteArrayOutputStream out = new ByteArrayOutputStream();
@SuppressWarnings("rawtypes")
Exporter exporter;
switch (format) {
case PDF:
exporter = new JRPdfExporter();
break;
case XLSX:
exporter = new JRXlsxExporter();
break;
case HTML:
exporter = new HtmlExporter();
break;
default:
throw new ReportException("Unknown export format");
}
exporter.setExporterOutput(new SimpleOutputStreamExporterOutput(out));
exporter.setExporterInput(new SimpleExporterInput(jasperPrint));
exporter.exportReport();
return out.toByteArray();
Die Ausnahme für HTML ist an exporter.exportReport();
Linie, die sagt
java.lang.ClassCastException:
net.sf.jasperreports.export.SimpleOutputStreamExporterOutput cannot be cast to net.sf.jasperreports.export.HtmlExporterOutput
at net.sf.jasperreports.engine.export.HtmlExporter.exportReport(HtmlExporter.java:232)
Der Fehler das gleiche für v6.0 und v5.6 ist. Dies funktionierte in v5.0 (einige der Klassen waren in Version 5.6 veraltet).
Wie exportieren Sie einen Bericht in verschiedenen Formaten, einschließlich HTML?
hast du meine eigene Antwort neu schreiben? –