jasper 不格式化 Excel 数据类型

发布于 2024-12-28 20:22:31 字数 1234 浏览 3 评论 0 原文

我有一个 Jasper 报告,它似乎可以很好地导出除 Excel 之外的所有格式。

下面的示例是应将其格式设置为货币但显示不正确的列。

在此处输入图像描述

这是我正在使用的 jasper 属性...

out = new FileOutputStream(file);
JExcelApiExporter exporterXLS = new JExcelApiExporter();

exporterXLS.setParameter(JRXlsExporterParameter.JASPER_PRINT, print);
exporterXLS.setParameter(JRXlsExporterParameter.IS_DETECT_CELL_TYPE, Boolean.TRUE);
exporterXLS.setParameter(JRXlsExporterParameter.IS_WHITE_PAGE_BACKGROUND, Boolean.FALSE);
exporterXLS.setParameter(JRXlsExporterParameter.IS_REMOVE_EMPTY_SPACE_BETWEEN_ROWS, Boolean.TRUE);
exporterXLS.setParameter(JRXlsExporterParameter.IS_REMOVE_EMPTY_SPACE_BETWEEN_COLUMNS, Boolean.TRUE);
exporterXLS.setParameter(JRXlsExporterParameter.CREATE_CUSTOM_PALETTE, Boolean.TRUE);
exporterXLS.setParameter(JRXlsExporterParameter.IS_COLLAPSE_ROW_SPAN, Boolean.FALSE);
exporterXLS.setParameter(JRXlsExporterParameter.IS_IGNORE_CELL_BORDER, Boolean.TRUE);
exporterXLS.setParameter(JRXlsExporterParameter.IS_IGNORE_GRAPHICS, Boolean.FALSE);
exporterXLS.setParameter(JRXlsExporterParameter.OUTPUT_STREAM, out);

exporterXLS.exportReport();

我已经尝试过 Jasper 4.0 和 4.5。我认为这与依赖性有关,但我不确定。

I have a Jasper Report which seems to be exporting fine in all formats except Excel.

The below sample is of a column that should be formatted as currency but shows incorrectly.

enter image description here

Here are the jasper properties i'm using...

out = new FileOutputStream(file);
JExcelApiExporter exporterXLS = new JExcelApiExporter();

exporterXLS.setParameter(JRXlsExporterParameter.JASPER_PRINT, print);
exporterXLS.setParameter(JRXlsExporterParameter.IS_DETECT_CELL_TYPE, Boolean.TRUE);
exporterXLS.setParameter(JRXlsExporterParameter.IS_WHITE_PAGE_BACKGROUND, Boolean.FALSE);
exporterXLS.setParameter(JRXlsExporterParameter.IS_REMOVE_EMPTY_SPACE_BETWEEN_ROWS, Boolean.TRUE);
exporterXLS.setParameter(JRXlsExporterParameter.IS_REMOVE_EMPTY_SPACE_BETWEEN_COLUMNS, Boolean.TRUE);
exporterXLS.setParameter(JRXlsExporterParameter.CREATE_CUSTOM_PALETTE, Boolean.TRUE);
exporterXLS.setParameter(JRXlsExporterParameter.IS_COLLAPSE_ROW_SPAN, Boolean.FALSE);
exporterXLS.setParameter(JRXlsExporterParameter.IS_IGNORE_CELL_BORDER, Boolean.TRUE);
exporterXLS.setParameter(JRXlsExporterParameter.IS_IGNORE_GRAPHICS, Boolean.FALSE);
exporterXLS.setParameter(JRXlsExporterParameter.OUTPUT_STREAM, out);

exporterXLS.exportReport();

I've tried both Jasper 4.0 and 4.5. I think it has to do with a dependency but i'm not sure.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

淤浪 2025-01-04 20:22:31

您可以尝试为您的 textField 元素添加 net.sf.jasperreports.export.xls.pattern 属性jrxml 文件。

您可以在此处找到示例。

You can try to add net.sf.jasperreports.export.xls.pattern property for your textField element in jrxml file.

You can find the sample here.

浮萍、无处依 2025-01-04 20:22:31

固定的!

我没有使用 JRXlsExporterParameter 类,而是使用了如下参数,并且它有效!

    jasperPrint.setProperty("net.sf.jasperreports.export.xls.create.custom.palette", "false");
    jasperPrint.setProperty("net.sf.jasperreports.export.xls.one.page.per.sheet", "false");
    jasperPrint.setProperty("net.sf.jasperreports.export.xls.remove.empty.space.between.rows", "false");
    jasperPrint.setProperty("net.sf.jasperreports.export.xls.remove.empty.space.between.columns", "false");
    jasperPrint.setProperty("net.sf.jasperreports.export.xls.white.page.background", "true");
    jasperPrint.setProperty("net.sf.jasperreports.export.xls.detect.cell.type", "false");
    jasperPrint.setProperty("net.sf.jasperreports.export.xls.size.fix.enabled", "false");
    jasperPrint.setProperty("net.sf.jasperreports.export.xls.ignore.graphics", "false");
    jasperPrint.setProperty("net.sf.jasperreports.export.xls.collapse.row.span", "false");
    jasperPrint.setProperty("net.sf.jasperreports.export.xls.ignore.cell.border", "false");
    jasperPrint.setProperty("net.sf.jasperreports.export.xls.ignore.cell.background", "false");
    jasperPrint.setProperty("net.sf.jasperreports.export.xls.max.rows.per.sheet", "0");
    jasperPrint.setProperty("net.sf.jasperreports.export.xls.wrap.text", "true");
    jasperPrint.setProperty("net.sf.jasperreports.export.xls.use.timezone", "false");

fixed!

Instead of using the JRXlsExporterParameter class i used the parameters as follows and it worked!

    jasperPrint.setProperty("net.sf.jasperreports.export.xls.create.custom.palette", "false");
    jasperPrint.setProperty("net.sf.jasperreports.export.xls.one.page.per.sheet", "false");
    jasperPrint.setProperty("net.sf.jasperreports.export.xls.remove.empty.space.between.rows", "false");
    jasperPrint.setProperty("net.sf.jasperreports.export.xls.remove.empty.space.between.columns", "false");
    jasperPrint.setProperty("net.sf.jasperreports.export.xls.white.page.background", "true");
    jasperPrint.setProperty("net.sf.jasperreports.export.xls.detect.cell.type", "false");
    jasperPrint.setProperty("net.sf.jasperreports.export.xls.size.fix.enabled", "false");
    jasperPrint.setProperty("net.sf.jasperreports.export.xls.ignore.graphics", "false");
    jasperPrint.setProperty("net.sf.jasperreports.export.xls.collapse.row.span", "false");
    jasperPrint.setProperty("net.sf.jasperreports.export.xls.ignore.cell.border", "false");
    jasperPrint.setProperty("net.sf.jasperreports.export.xls.ignore.cell.background", "false");
    jasperPrint.setProperty("net.sf.jasperreports.export.xls.max.rows.per.sheet", "0");
    jasperPrint.setProperty("net.sf.jasperreports.export.xls.wrap.text", "true");
    jasperPrint.setProperty("net.sf.jasperreports.export.xls.use.timezone", "false");
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文