我有<p:dataExporter>
生成CSV文件。
不幸的是,十进制列不在引号之间。这给我一些问题,因为我的小数点分隔符是逗号。
我该如何解决?也许可以为十进制值加上引号或更改CSV分隔符?
答案 0 :(得分:1)
逗号作为小数分隔符是典型的欧洲语。反过来,欧洲CSV格式通常使用分号作为CSV分隔符。这也应该解决这个问题。
但是,<p:dataExporter>
不支持通过某些标记属性更改CSV分隔符。逗号在PrimeFaces CSVExporter
source code中是硬编码的,而不是参数化的。这也被报告为issue 4714,目前已被接受,但仍然开放超过一年。该问题还提到Lapis JSF exporter作为数据导出的替代解决方案。
快速解决方法是将原始CSVExporter
source code file复制到WAR中,维护包结构,然后对其进行编辑,以便writer.write(",");
替换所有writer.write(";");
/WEB-INF/lib
。当WAR和{{1}}中的JAR都找到具有相同FQN的多个类时,WAR中的一个将在类加载中获得优先权并被替代使用。