【问题标题】:JasperReports: How to format numeric data with Excel exporterJasperReports:如何使用 Excel 导出器格式化数字数据
【发布时间】:2012-05-29 16:37:04
【问题描述】:

我正在使用 iReport 2.0.2。 在 Excel 导出器的帮助下生成报告后,我在格式化数字数据时遇到问题。

例如,85110057689 字符串在 Excel 文件中显示为 8.51100e+10(由于在 iReport 中使用“在 Excel 中预览”按钮的结果)。

请建议如何将格式更改为简单(不科学)。

【问题讨论】:

  • 我猜 85110057689 应该是 8.51100e+10。你确定你没有抄错行吗?
  • 对不起,我把例子放错了。我现在将编辑我的问题
  • 现在的问题是,当我发布报告时,如何避免 excel 中的数字 85110057689 为 8.51100e+10。:(

标签: jasper-reports export-to-excel number-formatting ireport


【解决方案1】:

我们可以使用net.sf.jasperreports.export.xls.detect.cell.type 属性来解决问题。

文档中的引用:

net.sf.jasperreports.export.xls.detect.cell.type

其值用作 IS_DETECT_CELL_TYPE 导出标志的默认状态的属性。

指定导出器是否应考虑类型 原始文本字段表达式并设置单元格类型和 相应的值。

例如我们可以为整个报告设置这个属性:

<?xml version="1.0" encoding="UTF-8"?>
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" ...>
    <property name="net.sf.jasperreports.export.xls.detect.cell.type" value="true"/>

【讨论】:

  • 您对此 100% 正确。我将此添加到我的项目中,它确实解决了问题。马上。
【解决方案2】:

为防止在 Excel 中以科学计数法显示大量数字,请确保在 Excel 单元格中输入 ="value" 而不是 value。

例如如果数值 = 85110057689,则将值转换为字符串格式并将结果格式化为 '="85110057689"',其中双引号将大数括起来,前面有一个 '=' 符号。

【讨论】:

  • 我在 excel 中尝试过。它成功了,但这不是我想要的。我想要的是当我发布报告时,不要在excel中更改格式的数字。我可以将公式放入 iReports 的哪个部分?
  • 在报告生成中指定 FormatFactory 类。参考-->jasperreports.sourceforge.net/…
猜你喜欢
  • 1970-01-01
  • 2011-06-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多