2011-06-25 12 views
2

残念なことに、OpenFaces Datatableは、PrimefacesやIceFacesとは異なり、まだエクスポート機能がありません。 エクスポートはケーキですが、IceFacesまたはprimefacesのデータテーブルをフィルタリングすることはホラー映画ですが、primeFacesのフィルタリングはJSF DataModel(悲しいが真実)では機能しません。OpenFaces DataTableをExcel/CSV形式でエクスポートするにはどうすればよいですか?

OpenFacesの使用DataTableフィルタリングはケーキなので、便利で強力です。 しかし、フィルタリングしたデータテーブルを、CSVまたはMS Excelのような形式にエクスポートするエンドユーザーはどうですか? 使用OpenFacesのDataTable方法:getDisplayedRowDatas()例えばPDFにエクスポートするiTextのようないくつかのthridライブラリを使用し、その後、データテーブルから現在表示されている行をつかむだろう

OpenFacesからの偉大なドミトリーは、私にヒントを与えました。私の頭の中で

、これはこの道を行く必要があります。

  • は、この目的のためにバッキングBeanを作成します。
  • その方法getDisplayedRowsDatas()とのDataTable OpenFacesの内容をエクスポートするためのApache POIを使用して、クラスパス
  • 書き込みコードにのApache POI第三のライブラリを追加します - しかし、私は、このメソッドはカラムのヘッダの名前を返しません怖いです - OpenFaces DatatableによってレンダリングされたHTMLテーブルをバッファリングされた文字列として取得し、Apache POIを使用してBufferでストリームされたExcelファイルを生成します。私が最近出会ったMyFacesの例では

MyFaces Datatable Export Exampleは、開発者は物事が容易になり、バッファStringにデータテーブルの内容を変換するためにMyFacesのコンポーネント<t:buffer value=#{myExportBean.myBufferString}> datatable here </t:buffer />を使用しています。 JSF Coreにはこのようなコンポーネントはありません。

誰かがこれまでに遭遇しましたか?ヘルプやより良い選択肢は非常に高く評価されています。

答えて

4

現在の夜間ビルドで使用可能な実験的なDataTableエクスポートAPIを確認できます。時間のテストであれば、このAPIを正式に宣言します。今のところ、CSVエクスポートのみが利用可能ですが、あなたは他のフォーマット用の独自の輸出業者を書くことができます。ここであなたはそれを動作させるためにあなたのアクションハンドラに入れなければならないコードがあります:

DataTable myTable = Faces.component("form:myTable", DataTable.class); 
myTable.export(new CSVTableExporter()); 

それは(のみページ番号付きのテーブルの現在のページがあるとして、現在の表で表示される行と列のすべてのデータをエクスポート現在エクスポートされています)。

+0

お返事ありがとうございます。 OpenFacesの入ってくるバージョンにはCSVエクスポータが含まれることを知ってうれしいです。それはCSVであり、優れていないなら、私にはうまく合う!しかし、どうすればいいですか?実際のOpenfacesのjarファイルを夜間のjarファイルに置き換えてください。それ以外の場合は、物理的にエクスポータAPIをどのように使用する必要がありますか?私は2番目のライブラリとしてNBuildをインポートし、JSF実装の競合を起こしました。よろしくお願いします。 – Hanynowsky

+0

私はちょうどあなたがエクスポートしたCSVファイルのテーブルヘッダーだけ行データを取得することによって、あなたが推奨したことをしました。もしテーブルが空であってもそうでないならば。何か間違っていますか?私はフォーラムに質問を投稿しました! Regard @Dmitry – Hanynowsky

+0

はOFフォーラムに投稿した後に解決されました。しかし、それでも、3.0と一緒に輸出APiを使用するにはどうすればいいですか? @ドミトリーについて – Hanynowsky

関連する問題