使用JasperReports导出Excel时如何在pattern中指定自定义单位格式
Jasper Reports导出Excel自定义单位格式生效方案
你配置失效主要是XML中pattern的引号转义方式错误,以及要提前确认字段为数值类型,具体修正方法如下:
1. 前置检查
确保$F{attributeWithUnit}为数值类型(BigDecimal、Double、Integer均可),如果是字符串类型,Excel的单元格格式规则不会生效。
2. 修正pattern写法
Excel自定义格式中,固定文本用单引号包裹即可,不需要用"转义双引号,这种写法同时兼容Jasper的XML解析规则。
比如要实现5,74 €/h的欧标格式,pattern写为#.##0,00' €/h';要实现24,7 kg的格式,pattern写为#.##0,0' kg'。
3. 完整正确的jrxml配置
<textField isBlankWhenNull="true"> <reportElement height="125" style="detail"> <property name="net.sf.jasperreports.export.xls.pattern" value="#.##0,00' €/h'"/> </reportElement> <textFieldExpression><![CDATA[$F{attributeWithUnit}]]></textFieldExpression> </textField>
4. 导出参数校验
如果修改后还是不生效,检查导出时的参数配置,确保net.sf.jasperreports.export.xls.cell.formatted参数值为true,该参数默认开启,若手动关闭会导致自定义格式不生效。
内容的提问来源于stack exchange,提问作者Nostra
相关产品推荐
相关产品推荐

