我制作了一份Excel报告,其中包含一些Double
类型TextFields
,其数字格式为##0.#
在OpenOffice中,这些单元格格式正确(这正是我需要的)
然而,当我用Microsoft Excel打开报告时,小数点并没有像我所想的那样消失。
经过一番搜索后,我在Excel中发现了一篇关于数字格式的帖子。
我尝试[=0]0;.#
而不是帖子建议。但是Excel抱怨我的手机号码格式被打破了。
我的问题是:我应该在JasperReport中使用什么模式,所以Excel不会显示尾随小数点?
更新:我只是发现链接剂量描述的模式没有解决所有情况,它只匹配0,而不是1.0,2.0 ......等等。
答案 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的处理将没有逗号。