如果通过dataExporter导出dataTable,如何防止convertNumber

时间:2019-07-04 10:15:47

标签: primefaces

如果我使用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> 

0 个答案:

没有答案