2011-12-30 12 views
2

我做了一个Excel报表,其中包含一些DoubleTextFields用数字格式模式##0.#遇到问题格式小数点在Excel与JasperReport的

在OpenOffice的,这些细胞被正确格式化(这正是我所需要的)

  • 1.56 - > 1.6
  • 0.0 - > 0

然而,当我用Microsoft Excel打开报告,小数点没有消失,就像我注意到的那样。

  • 1.56 - > 1.6
  • 0.0 - >

一些搜索后,我发现了一个关于在Excel中的数字格式后。

In Excel format number with optional decimal places

我试图[=0]0;.#而不是视后建议。但Excel抱怨我的手机号码格式被破坏了。

我的问题是:我应该在JasperReport中使用哪种模式,因此Excel不会显示尾随小数点?

更新:我只是找出链接剂量不会解决所有的情况下描述的模式,它仅匹配0,而不是1.0,2.0 ...等

+0

您是否在Excel中找到正确的格式? – 2011-12-30 06:23:28

+0

不,我甚至不能在Excel中制作我想要的数字格式,看来Excel不支持这样的格式? – 2011-12-30 06:39:19

+0

您使用的是什么Excel(版本)? – 2011-12-30 07:02:14

回答

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> 

在我的情况逗号(,)是在我的OS分隔符。

的有关net.sf.jasperreports.export.xls.formula属性,你可以找到here

+0

感谢您的信息。但是,我只注意到我的链接中描述的模式'[= 0] 0; ## 0#'不能解决所有情况,它只匹配0,而不是1.0,2.0 ...等 – 2011-12-30 08:16:41

1

至于解决方法,你可以在字段将此代码粘贴:

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

所以,XLS处理将没有逗号,如果尊者被trailinig零。