从JSF 2 Datatable导出到电子表格

时间:2012-11-23 05:51:20

标签: java jsf primefaces apache-poi export-to-excel

有人可以提供一些示例,其中POI用于将数据从具有排序功能的jsf 2数据表导出到电子表格吗? 我也有一个疑问。我可以使用primefaces dataexport标签和jsf 2数据表吗?由于我是JSF的新手,任何答案都会非常感激。

1 个答案:

答案 0 :(得分:0)

我们目前正在使用PrimeFaces DataExporter和我们的数据表。生成的电子表格不是很漂亮,但第一次使用起来非常简单。此外,它还使用过滤和排序功能。

以下是我们的PrimeFaces数据表示例:

<p:dataTable id="volumeListTable" widgetVar="volumeListTableWidget" value="#{volumeController.volumes}" var="volume" 
                                    paginator="true" rows="#{parameters.rowsNumber}" rowsPerPageTemplate="5,10,25,50"
                                    paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"  
                                    rowKey="#{volume.key}" selection="#{volumeController.selectedVolumes}" selectionMode="multiple"
                                    filteredValue="#{volumeController.filteredList}" >

                            <p:ajax ... />

                            <p:column sortBy="#{volume.volumeID}" filterMatchMode="contains" filterBy="#{volume.volumeID}" > 
                                <f:facet name="header">
                                    <h:outputText value="#{bundle.VolumeID}" />
                                </f:facet>
                                <h:outputText value="#{volume.volumeID}" />
                            </p:column>

                            <p:column sortBy="#{volume.volumeStatus}" filterMatchMode="contains" filterBy="#{volume.volumeStatus}" >
                                <f:facet name="header">
                                    <h:outputText value="#{bundle.VolumeStatus}" />
                                </f:facet>
                                <h:outputText value="#{volume.volumeStatus}" />
                            </p:column>
</p:dataTable>

这是dataExporter的commandButton:

<p:commandButton title="#{bundle.Excel}" icon="aofxdm-icon-xls" disabled="#{volumeController.volumesNumber == 0}" ajax="false" >
   <p:dataExporter type="xls" target=":volumeForm:volumeListTable" fileName="Volumes" />
</p:commandButton>

您可以在PrimeFaces ShowcasePrimeFaces Userguide

中找到所需的所有信息

另一种方法是在您的支持中创建自己的方法,在您的数据表中使用的list / filteredList上创建电子表格,并使用p:downloader和PrimeFaces的StreamedContent下载创建的文件。