如果我使用dataExporter将dataTable导出到Excel,则数字将在其中获得空格,并且我无法在Excel中将它们转换为数字并进行汇总。
我尝试使用exportFunction,但是无法使其正常工作。但是我认为没关系,因为convertNumber函数。
<p:column filterBy="#{item.netPrice}" filterStyle="width: 65px;" exportFunction="#{controller.exportNumber}" headerText="#{bundle.ListFormItemSumTitle_netPrice}" filterMatchMode="startsWith" sortBy="#{item.netPrice}" visible="#{controller.isColumnVisible[1]}">
<h:outputText value="#{item.netPrice}">
<f:convertNumber />
</h:outputText>
</p:column>
控制器方法:
public String exportNumber(UIColumn column) {
String value = "";
for(UIComponent child: column.getChildren()) {
if(child instanceof ValueHolder) {
value = ComponentUtils.getValueToRender(FacesContext.getCurrentInstance(), child);
}
}
return value.replaceAll(" ", "");
}
可悲的是,甚至没有在出口时调用此方法...:(
这是列之一。
<p:column filterBy="#{item.netPrice}" filterStyle="width: 65px;" headerText="#{bundle.ListForm_netPrice}" filterMatchMode="startsWith" sortBy="#{item.netPrice}" visible="#{controller.isColumnVisible[1]}">
<h:outputText value="#{item.netPrice}">
<f:convertNumber />
</h:outputText>
</p:column>
预期结果:如果导出dataTable,则数字不包含空格;如果在UI上查看dataTable,则将空格作为双引号分隔符。
Primefaces版本:
<dependency>
<groupId>org.primefaces</groupId>
<artifactId>primefaces</artifactId>
<version>6.2</version>
<type>jar</type>
</dependency>