XSSFWorkbook.setActiveSheet() 等同于 JasperReports?

XSSFWorkbook.setActiveSheet() equivalent in JasperReports?

我们正在使用 JasperReports 6.13.0 生成 XLSX 格式的报告。我们有一个要求,每当用户打开生成的 XLSX 报告时,我们需要将特定的 sheet 显示为默认可见(而不是第一个 sheet)。

我的问题是,我们在 JasperReports 中有这个功能吗?我在文档中找不到任何相关内容。

注意:在 Apache POI 中,我们可以使用以下方法实现此功能:XSSFWorkbook.setActiveSheet(int index)

JasperReports 目前不包含此功能。

您可以考虑修补JasperReports代码来添加它。您需要做的是在 XlsxWorkbookHelper.exportHeader 中的 workbookPr.

行之后添加类似于以下行的内容
    write("<bookViews><workbookView activeTab=\"" + activeSheet + "\"/></bookViews>\n");

您还需要以某种方式从导出器传递活动 sheet 索引。

或者,您可以使用 JasperReports 导出到 XLSX,然后使用 POI 打开文件并设置活动 sheet。