JasperReports:如何使用Excel导出器格式化数字数据

7
我正在使用iReport 2.0.2。在使用Excel导出器生成报告后,我遇到了数字数据格式化的问题。
例如,85110057689字符串在Excel文件中显示为8.51100e+10(这是在iReport中使用“在Excel中预览”按钮的结果)。
请建议如何更改格式为简单格式(而非科学计数法)。

我猜85110057689应该是8.51100e+10。你确定没有复制错误的行吗? - Franz Ebner
对不起,我犯了错误,在示例中放错了。我现在会编辑我的问题。 - Naim Nsco
现在的问题是如何避免在发布报告时,Excel将数字85110057689转换为8.51100e+10。:( - Naim Nsco
2个回答

11

我们可以使用net.sf.jasperreports.export.xls.detect.cell.type属性来解决这个问题。

文档中的引用:

net.sf.jasperreports.export.xls.detect.cell.type

该属性的值被用作IS_DETECT_CELL_TYPE导出标记的默认状态。

指定导出器是否应考虑原始文本字段表达式的类型并相应地设置单元格类型和值。

例如,我们可以为整个报告设置此属性:

<?xml version="1.0" encoding="UTF-8"?>
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" ...>
    <property name="net.sf.jasperreports.export.xls.detect.cell.type" value="true"/>

你是100%正确的。我将它添加到我的项目中,问题得到了解决。太好了。 - Dan Torrey

0
为了防止Excel中显示科学计数法的大数字,确保在单元格中输入的是="value"而不是值。
例如,如果数字值=85110057689,则将其转换为字符串格式并将结果格式化为'="85110057689"',其中双引号包裹大数字并且前面有一个'='符号。

我在Excel中尝试过了,虽然成功了,但这不是我想要的。我想要的是当我发布报告时,数字不会在Excel中改变格式。在iReports中我应该把公式放在哪个部分? - Naim Nsco
将FormatFactory类指定到报表生成中。参考-->http://jasperreports.sourceforge.net/JasperReports-Ultimate-Guide-3.pdf - rt2800

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接