JasperReport CSV版本中分号作为分隔符

3

我希望将我的jasperrepport的csv文档中的值用分号而不是逗号分隔。

我发现了net.sf.jasperreports.export.csv.field.delimiter参数,如果我在jrxml文件中添加它,它就可以工作:

<property name="net.sf.jasperreports.export.csv.field.delimiter" value=";"/>

但是我想要的是在我的Jasper服务器中有一个全局配置文件,可以将此配置键定义为每个CSV报告的默认值。

这个问题有解决方案吗?

3个回答

4
您可以在JasperServer的applicationContext.xml文件中设置fieldDelimiter属性(可以在jasperserver\WEB-INF\文件夹中找到该文件)。
<bean id="csvExportParameters" class="com.jaspersoft.jasperserver.api.engine.jasperreports.common.CsvExportParametersBean">
    <property name="fieldDelimiter" value=","/>
</bean>

我找到了这个参数,但即使我重新启动服务器,它也没有改变任何东西。我该如何强制Jasper使用这个设置? - Manuel Leduc
你编辑过这个文件吗:apache-tomcat\webapps\jasperserver\WEB-INF\applicationContext.xml?并设置了这个属性:<bean id="csvExportParameters" class="com.jaspersoft.jasperserver.api.engine.jasperreports.common.CsvExportParametersBean"> <property name="fieldDelimiter" value=";"/> </bean>? - Alex K
@Manuel 你的意思是导出的数据(csv文件)使用逗号作为分隔符而不是“;”符号吗? - Alex K
我已经这样做了。是的,我已经在applicationContext.xml中用“;”替换了“,”。 - Manuel Leduc
@Manuel,我刚刚设置了<property name="fieldDelimiter" value="$"/>,重新启动JasperServer并将报告数据导出为CVS。结果是:销售人员$$账户$$$$$金额 Sarah Smith$$N&W Creek Transportation Corp$$$$$600,00。对于逗号分隔符,我有:销售人员,,帐户,,,,金额 Sarah Smith,,N&W Creek Transportation Corp,,,,“600,00”。 - Alex K
你是否有JasperServer的本地实例? - Alex K

0

JRCsvExporter工作正常,但上面的代码给了我一个错误。以下代码为我解决了这个问题...

在声明FIELD_DELIMITER之前添加CHARACTER_ENCODING。代码示例如下(follow_up Link获取更多信息):

exporter.setParameter(JRCsvExporterParameter.CHARACTER_ENCODING, "cp1252");
exporter.setParameter(JRCsvExporterParameter.FIELD_DELIMITER, ";");

-1
JRCsvExporter csvExporter = new JRCsvExporter();
csvExporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
csvExporter.setParameter(JRExporterParameter.OUTPUT_STREAM, outputStream);
csvExporter.setParameter(JRCsvExporterParameter.FIELD_DELIMITER, ';');
csvExporter.exportReport();

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