使用JasperReport在Excel中格式化小数点时遇到问题

时间:2011-12-30 05:50:16

标签: excel jasper-reports

我制作了一份Excel报告,其中包含一些Double类型TextFields,其数字格式为##0.#

在OpenOffice中,这些单元格格式正确(这正是我需要的)

  • 1.56 - > 1.6
  • 0.0 - > 0

然而,当我用Microsoft Excel打开报告时,小数点并没有像我所想的那样消失。

  • 1.56 - > 1.6
  • 0.0 - >的 0

经过一番搜索后,我在Excel中发现了一篇关于数字格式的帖子。

  

In Excel format number with optional decimal places

我尝试[=0]0;.#而不是帖子建议。但是Excel抱怨我的手机号码格式被打破了。

我的问题是:我应该在JasperReport中使用什么模式,所以Excel不会显示尾随小数点?

更新:我只是发现链接剂量描述的模式没有解决所有情况,它只匹配0,而不是1.0,2.0 ......等等。

2 个答案:

答案 0 :(得分:1)

您可以尝试使用 net.sf.jasperreports.export.xls.formula 属性。

样本:

<textField pattern="##0.#">
    <reportElement x="0" y="0" width="100" height="20">
        <property name="net.sf.jasperreports.export.xls.formula" value="[=0]0;##0,#"/>
    </reportElement>
    <textElement/>
    <textFieldExpression><![CDATA[$F{sum}]]></textFieldExpression>
</textField>

在我的例子中,逗号(,)在我的操作系统中是分隔符。

您可以找到有关 net.sf.jasperreports.export.xls.formula 属性的信息here

答案 1 :(得分:1)

作为解决方法,您可以在以下代码中粘贴以下字段:

new DecimalFormat("0.##").format($F{bigdecValue})

因此,如果thera是trailinig零,则xls的处理将没有逗号。