【发布时间】:2015-04-10 03:48:05
【问题描述】:
我有一个<p:dataExporter>,它会生成一个 CSV 文件。
不幸的是,小数列不在引号之间。这给我带来了一些问题,因为我的小数分隔符是逗号。
我该如何解决?也许可以为十进制值加上引号或更改 CSV 分隔符?
【问题讨论】:
标签: jsf csv primefaces
我有一个<p:dataExporter>,它会生成一个 CSV 文件。
不幸的是,小数列不在引号之间。这给我带来了一些问题,因为我的小数分隔符是逗号。
我该如何解决?也许可以为十进制值加上引号或更改 CSV 分隔符?
【问题讨论】:
标签: jsf csv primefaces
逗号作为小数分隔符是典型的欧洲。反过来,欧洲 CSV 格式通常使用分号作为 CSV 分隔符。这应该也能解决这个问题。
但是,<p:dataExporter> 不支持通过某些标记属性更改 CSV 分隔符。逗号在 PrimeFaces CSVExporter source code 中是硬编码的,而不是参数化的。这也被报告为issue 4714,目前已被接受,但仍开放一年多。该问题还提到Lapis JSF exporter 作为数据导出的替代解决方案。
一种快速的解决方法是将原始CSVExporter source code file 复制粘贴到您的WAR 中,保持包结构,并对其进行编辑以将所有出现的writer.write(","); 替换为writer.write(";");。当在 WAR 和 WAR 的 /WEB-INF/lib 中的 JAR 中都找到具有相同 FQN 的多个类时,WAR 中的类将在类加载中优先并被使用。
【讨论】: