2012-04-25 114 views
1

每当我将碧玉报告导出到CSV文件时,如果文本字段包含新的行字符,CSV内部的记录将用两行而不是一行表示。 我们可以在碧玉报告中做什么设置,它会忽略文本字段中出现的新行字符? 我们使用iReport来设计碧玉报告。任何形式的帮助表示赞赏。 谢谢如何使Jasper Reports忽略文本字段中的换行符?

+0

您可以使用[net.sf.jasperreports.csv.record.delimiter](http://jasperforge.org/uploads/publish/jasp erreportswebsite/trunk/config.reference.html#net.sf.jasperreports。 csv.record.deli miter)属性设置分隔符 – 2012-04-25 19:32:34

+0

我试着在java代码中设置分隔符。代码 JRPrintServiceExporter exporter = new JRPrintServiceExporter(); exporter.setParameter(JRCsvExporterParameter.RECORD_DELIMITER,“\ r \ n”); '代码' 但它没有奏效。 – user613114 2012-04-26 06:57:32

+0

你使用双引号吗?您可以阅读[此csv格式的要求](http://www.csvreader.com/csv_format.php) – 2012-04-26 07:32:22

回答

0

这听起来不像是一个分隔符问题。您的源数据在某个地方有一个新行。 JasperReports将报表中的数据导出,因此它具有此新行字符。

这与源数据读取“abcdefg”类似,并且您说您真的讨厌字母“d”,因此您不希望它出现在生成的CSV中。当然......新生产线在某些方面是特殊的......但它仍然只是一个角色。

您可以修改CSV导出器以去掉回车符(或去掉'd')。或者你可以修改你的查询来将它们去掉。如果你的源代码是SQL,这将很简单。或者你可以修改你的文本字段表达式去除它们。例如,使用Apache Commons Lang StingUtils删除或替换新行字符。

+0

亲爱的mdahlman,我试图剥去那个特定列的新行字符。有用。但是我们有很多报告,并且实际上不可能修改每个报告中的每一列。为了导出CSV,我们不直接使用JRCsvExporter。我们依赖于内部的jasper报告API。我想我们是否可以扩展JRCsvExporter并实现require功能。可能你能为我们提供更多有关此解决方案的提示吗? – user613114 2012-04-27 07:40:57

+0

我以前没有做过这样的扩展。这当然是可能的......但我无法估计这种努力。我首先要问JasperReports论坛。或者在这里发布它作为一个新问题。这可能是有人以前做过的。 – mdahlman 2012-04-27 16:04:56