jasperreports 6.x 的說明文檔洋洋灑灑 300 多頁(英文)牍疏,卻沒有找到 jasperreports 6.x 如何整合進系統(tǒng)的內(nèi)容嘱吗,也是醉咯私恬。所以這里總結(jié)如下:
/**
* 導出為 HTML(字符串)
* @param params 參數(shù)映射關系
* @param reportTemplateName 報表名稱(*.jasper 后綴)
* @return HTML 文件
*/
public String exportToHTML(Map<String, Object> params,
String reportTemplateName) {
if (params == null || params.isEmpty()) {
throw new IllegalArgumentException("params");
}
if (StringUtils.isBlank(reportTemplateName)) {
throw new IllegalArgumentException("reportTemplateName");
}
try {
Resource template = new ClassPathResource
(REPORT_TEMPLATE_PATH_PREFIX + reportTemplateName);
File html = File.createTempFile("temp", ".html");
HtmlExporter exporter = new HtmlExporter();
exporter.setExporterInput(new SimpleExporterInput(JasperFillManager.fillReport(template.getInputStream(), params,
connection)));
exporter.setExporterOutput(new SimpleHtmlExporterOutput(html));
exporter.exportReport();
return TextFile.read(html);
} catch (JRException e) {
logger.error("導出為 HTML", e);
} catch (IOException e) {
logger.error("導出為 HTML", e);
}
return null;
}
- params :是需要傳入報表的參數(shù)映射關系柜裸;Key:參數(shù)名;Value:參數(shù)值味滞。
- reportTemplateName:是 Jaspersoft Studio 6.x 編譯后的文件全封,在 Jaspersoft Studio 的 Project Explorer 中即可看到:
- jasper:是編譯后的文件。
- jrxml:是源文件桃犬。
源代碼中的 REPORT_TEMPLATE_PATH_PREFIX 是報表模板的相對路徑刹悴,記得要把報表設計文件放在 classPath 下哦O(∩_∩)O~
其中的 TextFile 類用于讀取文件內(nèi)容,詳情 請參見攒暇。