Primefaces数据表行扩展导出

时间:2015-01-26 12:20:37

标签: jsf primefaces

我需要在primefaces中导出数据表行扩展,但我无法弄明白。反正有吗? 提前谢谢。

1 个答案:

答案 0 :(得分:0)

您可以在不使用其他Java API的情况下使用rowExpansion数据导出PrimeFaces DataTable,也可以在Apache POI API帮助下对ManagedBean类使用自定义导出方法。

这里的窍门是,将要导出的列添加到文件中,并将visible =“ false”属性附加到这些列中。 然后将exportable =“ false”属性附加到p:rowToggler列。

因此,您将不会看到数据表列,但会在导出的文件上看到这些列。

here

获取
<h:form id="myDtTblFrm">

<h:commandLink>
    <img src="../ims/excel.png"/>
    <p:dataExporter type="xlsx" target="myTbl" fileName="myExcelFile"/>
</h:commandLink>

<p:dataTable id="myTbl" var="item" value="#{myBean.list}">

    <p:rowExpansion>
            <p:panelGrid columns="2" columnClasses="label, value" style="width: 50%">
                    <h:outputText value="Column Header 04" />
                    <h:outputText value="#{item.property04}" />

                    <h:outputText value="Column Header 05" />
                    <h:outputText value="#{item.property05}" />
            </p:panelGrid>
    </p:rowExpansion>

    <p:column exportable="false">
            <p:rowToggler />
    </p:column>

    <p:column headerText="Colum01">
        <p:outputLabel value="#{item.property01}" />
    </p:column> 
    <p:column headerText="Column02" visible="false" >
        <p:outputLabel value="#{item.property02}" />
    </p:column>
    <p:column headerText="colum03" >
        <p:outputLabel value="#{item.property03}" />
    </p:column>
    <p:column headerText="colum04" >
        <p:outputLabel value="#{item.property04}" />
    </p:column>
    <p:column headerText="colum05" >
        <p:outputLabel value="#{item.property05}" />
    </p:column>
</p:dataTable>