【发布时间】:2014-02-04 13:13:15
【问题描述】:
我正在使用 JasperReports 创建一个报告,使用 iReport 生成的 jrxml 文件。
我的应用程序是多语言的(英语 (LTR) 和波斯语 (RTL))。在生成的表格中,关于文本的方向,我需要交换整个页面方向。另外我使用 locale 功能。
我google了很多,终于找到了一个属性JRXlsAbstractExporter.PROPERTY_SHEET_DIRECTION, "RTL",但是在excel生成的格式中设置这个属性对我的报告没有任何影响。
params.put(JRXlsAbstractExporter.PROPERTY_SHEET_DIRECTION, "RTL");
JasperPrint jasperPrint = JasperFillManager.fillReport(report,params,
dataSource != null ? new JRMapArrayDataSource(dataSource) : new JREmptyDataSource());
我尝试的另一件事是在导出器参数中设置如下:
JRExporter exporter = new JRXlsxExporter();
exporter.setParameter(JRXlsAbstractExporter.PROPERTY_SHEET_DIRECTION, "RTL");
exporter.exportReport();
但不允许设置此参数,我得到错误。
如果您对如何更改报告页面方向(或换句话说,在特定区域设置整个报告)进行更改有任何经验,请提供帮助。
【问题讨论】:
-
我想知道您想要实现什么...当您导出到 Excel 时,您的期望是什么?我在问,因为我真的看不到它。显然,单元格不会从右到左翻转和计数,这没有多大意义。图表?我相信 Axis 应该保持不变。好吧,也许数字可能会改变,但这与 RTL 无关......或者我对轴有误?您不会翻转其他类型的图表...那么到底是什么问题?
-
例如,在 LTR 语言中,如果您有一个用于计数的列,最好位于左侧的第一列,但在 RTL 语言中,最好位于最右侧的列中。我想要类似excel的页面布局->从右到左整个页面。
-
我明白了。问题是,它在 Excel 本身中并不像这样工作。还是我错了?无论如何,您似乎需要(至少)创建两个报告模板(一个用于 LTR,一个用于 RTL)并在运行时选择有效的一个。我看不到任何对 Excel 报告中的列重新排序的方法。也许是一些自定义出口商?
标签: java internationalization jasper-reports