我需要在 primefaces 中导出数据表行扩展,但我无法弄清楚。有办法做到这一点吗? 提前致谢。
最佳答案
您可以使用 rowExpansion 数据导出 PrimeFaces DataTable,而无需其他 Java API,或者您可以使用 ManagedBean 类上的自定义导出方法 Apache POI API帮助。
这里的技巧是,添加要导出到文件的列,并将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" style="display: none">
<p:outputLabel value="#{item.property04}" />
</p:column>
<p:column headerText="colum05" style="display: none">
<p:outputLabel value="#{item.property05}" />
</p:column>
</p:dataTable>
关于jsf - Primefaces 数据表行扩展导出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28150026/