系统整合 jasperreports 6.x 导出 HTML 的工具方法

jasperreports 6.x 的说明文档洋洋洒洒 300 多页(英文),却没有找到 jasperreports 6.x 如何整合进系统的内容,也是醉咯。所以这里总结如下:

/**
     * 导出为 HTML(字符串)
     * @param params 参数映射关系
     * @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 :是需要传入报表的参数映射关系;Key:参数名;Value:参数值。
  • reportTemplateName:是 Jaspersoft Studio 6.x 编译后的文件,在 Jaspersoft Studio 的 Project Explorer 中即可看到:
Project Explorer
  • jasper:是编译后的文件。
  • jrxml:是源文件。

源代码中的 REPORT_TEMPLATE_PATH_PREFIX 是报表模板的相对路径,记得要把报表设计文件放在 classPath 下哦O(∩_∩)O~

其中的 TextFile 类用于读取文件内容,详情 请参见

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,815评论 25 709
  • linux资料总章2.1 1.0写的不好抱歉 但是2.0已经改了很多 但是错误还是无法避免 以后资料会慢慢更新 大...
    数据革命阅读 14,203评论 2 33
  • Ubuntu的发音 Ubuntu,源于非洲祖鲁人和科萨人的语言,发作 oo-boon-too 的音。了解发音是有意...
    萤火虫de梦阅读 99,964评论 9 468
  • 今天又回顾了21-40讲,为什么要回顾呢,因为自己在实践易效能时,感觉有点找不到方向了,不知道该从哪里着手去做,希...
    舜间永恒阅读 1,696评论 2 1
  • 为你开口 从此不再闭目 每一寸雨滴落入 都在溅射到深处 有时候积攒了太多的 排泄不出的 溢出来又闭了口 默默成为泡...
    名字带帅的糙汉阅读 2,187评论 4 9