3

誰かが、POIを使用してデータをソート機能を備えたjsf 2データテーブルからスプレッドシートにエクスポートする例を提供できますか?また、疑問が1つあります。primefacesdataexportタグをjsf 2 datatableと一緒に使用できますか?私はJSFに不慣れなので、どんな答えでも本当にありがたいです。

4

1 に答える 1

0

現在、データテーブルで PrimeFaces DataExporter を使用しています。生成されたスプレッドシートはあまり美しくありませんが、初めて使用する場合は非常に簡単です。さらに、フィルタリングおよびソート機能を使用しています。

PrimeFaces Datatable のサンプルを次に示します。

<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 ショーケースPrimeFaces ユーザーガイドで見つけることができます。

もう1つの方法は、データテーブルで使用されるリスト/filteredListにスプレッドシートを作成し、p:downloaderとStreamedContentを使用して作成したファイルをPrimeFacesからもダウンロードする独自のメソッドをバッキングに作成することです。

于 2012-11-23T08:30:25.517 に答える