我需要在primefaces中导出数据表行扩展,但我无法弄明白。反正有吗? 提前谢谢。
答案 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>