导出为Excel格式:单元格类型" general"并且数字变成科学记数法

时间:2018-05-07 12:21:45

标签: jasper-reports export-to-excel number-formatting

我创建了一个Jrxml来生成excel输出。数据类型的文本字段"字符串"在iReport中显示单元格格式为' General'在生成的excel输出中。

当Number大于12位时,它变成科学记数法。例如999999999869转向1E+12。我需要格式化格式为' text'或'号码'。

我尝试了属性

<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

1 个答案:

答案 0 :(得分:0)

在大多数情况下,在报告jrxml中添加以下属性,让excel检测单元格类型:

<property name="net.sf.jasperreports.export.xls.detect.cell.type" value="true"/>

但看起来你已经尝试过了。在这种情况下,您可以尝试使用很少的脏解决方案。您看,Excel中的默认数字格式是常规,因此您只能在单元格中显示最多11位数字,此问题适用于Microsoft Office Excel 2010,Excel 2007&amp; Excel 2003.获取更高版本的Microsoft Excel会使此问题无效或尝试以XLSX格式导出。或者,您可以使用其他Excel读者,例如Open Office。

当您导出到Excel时,您将失去对单元格格式的控制,但作为一种解决方法,尝试为字符添加前缀以强制单元格类型为文本,尝试在数字textField前添加单引号('),如{{1或尝试在数字之间插入空格。这仍然是一种hacky但可能对你有用。

否则,最后一个可能的解决方法是从启动报告的java代码进入Excel。你可以访问ROW,COLUMN&amp;通过poi jar进行CELL级别的项目。