当前位置: 首页 > 面试题库 >

JasperReports 5.6:不建议使用JRXlsExporter.setParameter

鞠源
2023-03-14
问题内容

我有以下代码将JasperReprot导出到XLS:

        JasperPrint jprint=JasperFillManager.fillReport(expRpg, null, new JRBeanCollectionDataSource(datalist));
        JRXlsExporter exporter = new JRXlsExporter();
        exporter.setParameter(JRXlsExporterParameter.JASPER_PRINT, jprint); 
        exporter.setParameter(JRXlsExporterParameter.OUTPUT_STREAM, outStream);
        exporter.setParameter(JRXlsExporterParameter.IS_DETECT_CELL_TYPE, Boolean.TRUE); 
        exporter.setParameter(JRXlsExporterParameter.IS_REMOVE_EMPTY_SPACE_BETWEEN_ROWS, Boolean.TRUE);
        exporter.exportReport();

升级到 JasperReports 5.6, 所有setParameter都标记为“已弃用”,我找不到适合此代码的文档。

如何使用 JasperReports 5.6 将报告导出到xls ?


问题答案:

JRExporter在5.6中已弃用。他们引入了新的接口Exporter,并对所有的Exporter进行了改造,使其具有ExporterInput,ReportExportConfiguration,ExporterConfiguration,ExporterOutput。见下面的链接

http://jasperreports.sourceforge.net/api/net/sf/jasperreports/export/Exporter.html

这意味着您需要使用上述类或其子类PDF导出示例来创建配置,而不是setParameter。Excel导出应遵循相同的方法

JRPdfExporter exporter = new JRPdfExporter();

exporter.setExporterInput(new SimpleExporterInput(jasperPrint));
exporter.setExporterOutput(outputStream);
SimplePdfExporterConfiguration configuration = new SimplePdfExporterConfiguration();
exporter.setConfiguration(configuration);

exporter.exportReport();

Excel对应

JRXlsExporter exporter = new JRXlsExporter();
exporter.setExporterInput(new SimpleExporterInput(jasperPrint));
exporter.setExporterOutput(new SimpleOutputStreamExporterOutput(destFile));
SimpleXlsReportConfiguration configuration = new SimpleXlsReportConfiguration();
configuration.setOnePagePerSheet(true);
configuration.setDetectCellType(true);
configuration.setCollapseRowSpan(false);
exporter.setConfiguration(configuration);

exporter.exportReport();

SimpleXlsReportConfiguration将具有与excel导出相关的配置。根据您的要求设置值



 类似资料:
  • 问题内容: 今天,由于扩展程序出现问题,我不得不重新启动浏览器。重新启动时发现,我的浏览器(Chromium)自动更新为不再允许同步AJAX请求的新版本。引用: 不赞成在主线程上使用同步XMLHttpRequest,因为它会对最终用户的体验产生不利影响。如需更多帮助,请访问http://xhr.spec.whatwg.org/。 我需要node.js应用程序的同步AJAX请求才能工作,因为它们通过

  • 问题内容: 我有这种方法: 不幸的是,编译器向我显示了以下问题: 因为已弃用。 不使用该如何改写此方法? 问题答案: 您可以用和替换它(您需要使用兼容性包来支持API版本11之前的设备)。 但是,您似乎只使用了一次查询:您甚至可能不需要它。也许这行得通吗?

  • 问题内容: 我最近一直在使用Hibernate 3.5和Spring 3进行一些工作,但是我对Hibernate还是比较陌生,并认为Spring中的类使将Hibernate与我的域类一起使用变得容易且容易。 但是,在搜索一个不相关的问题时,我看到有人提到,这不是使用Spring和Hibernate的最佳方法。任何人都可以阐明以下几点: 为什么不推荐? 整合Hibernate和Spring的最佳方法

  • 问题内容: 我正在使用jQuery 1.7,并且已将其用于AJAX记录,但是我了解到该功能已被弃用。 我需要使用回调,但这不起作用: HTML: 问题答案: 继续评论:当您似乎不需要 回调时 ,您似乎对它有些痴迷!:) 对现有代码的简单更改是丢弃并简单地将代码放入ajax调用的成功部分:

  • 查看的谷歌文档,它们显示了下面关于如何获取的示例代码: 当使用最新的依赖项时,没有这样的类。 转到的文档,我看到一条评论说: 这个类在API级别1.1.0中被弃用。使用ViewModelProvider。Android模型工厂 问题是,当尝试使用,找不到方法的等效

  • 问题内容: Java文档似乎并未提及有关的弃用的任何内容,但我一直很早就听说过它的弃用情况。是因为它具有错误/错误而被弃用,还是整体上更好使用? 我有一些使用的代码,我想知道我是否应该认真考虑将其重构为使用,还是弃用纯粹是为了方便而我的代码是安全的。 问题答案: 从javadoc中获取StringTokenizer: 是旧类,出于兼容性原因保留,尽管在新代码中不鼓励使用它。建议任何寻求此功能的人改