[英]Export to Excel format: cell type “general” and number turn into scientific notation
我创建了一个Jrxml来生成一个excel输出。 iReport中数据类型为“ String”的文本字段在生成的excel输出中以单元格格式显示为“常规”。
当Number大于12位数字时,它将变成科学计数法。 例如999999999869变为1E+12
。 我需要单元格格式为“文本”或“数字”。
我已经尝试过财产
<property name="net.sf.jasperreports.export.xls.detect.cell.type" value="true"/>
但这是行不通的。
也尝试过使用pattern="@"
和pattern="0.00"
但它们都不起作用。
JasperReports版本使用5.6.1和org.grails.plugins:jasper 1.11.0
在大多数情况下,在报表jrxml中添加以下属性可使excel检测单元格类型:
<property name="net.sf.jasperreports.export.xls.detect.cell.type" value="true"/>
但是看起来您已经尝试过了。 在这种情况下,您将剩下一些可以尝试的肮脏解决方案。 您会看到,Excel中的默认数字格式为常规,因此您最多只能在一个单元格中显示11位数字,并且此问题适用于Microsoft Office Excel 2010,Excel 2007和Excel2003。获取更高版本的Microsoft Excel会使此问题无效,或者尝试以XLSX格式导出。 或者,您可以使用其他Excel阅读器,例如Open Office。
当您导出到Excel时,您将失去对单元格格式的控制,但作为一种变通办法,尝试在字符前面加上前缀以强制将单元格类型输入文本,请尝试在数字textField前面添加单引号('),例如<![CDATA["'" + $F{LongNumber}]]>
或尝试在数字之间插入空格。 这仍然有点怪异,但可能对您有用。
否则,最后一个可能的解决方法是从启动报告的Java代码进入Excel。 您可以通过poi jar访问ROW,COLUMN和CELL级别的项目。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.