エクスポートの処理過程および実行用のサンプルについて説明します。
エクスポート処理について
アプリケーションはエクスポートのためのデータ(command、export data、style)を一定のサイズで分割し、分割データ(chunked data)をnexacro-xeniサーバーに順次送信します。
nexacro-xeniサーバーでは送信されたデータをcommandにより保存されるファイルStreamとして構成します。
指定されたパスに任意のフォルダを生成し、Streamを指定された名前のファイルとして生成します。
生成されたファイルのurlをアプリケーションに送信し、ファイルをダウンロードできるようにします。
urlをリクエストします。
Excelファイルを送信します。
生成したファイルは設定によって管理/削除されます。
nexacro-xeniでExcelファイルのエクスポート実行の流れ
実行用のサンプル
nexacroのGridコンポーネントのデータをExcelファイルとしてエクスポートする方法を説明します。
nexacroの画面
1
以下のサンプル画面では、[Export]ボタンをクリックすると、Gridの内容がnexacro-xeniに分割送信されます。
part1_03_02
2
nexacro-xeniで作業が完了すると、自動的にファイルがダウンロードされますが、ブラウザによって以下のようなダイアログが表示されることがあります。
part1_03_03
3
ダウンロードされたファイルを確認します。
part1_03_04
nexacroのソースコード
this.Button00_onclick = function(obj:Button, e:nexacro.ClickEventInfo) { this.url = “http://127.0.0.1:8080/nexacro-xeni-java/XExportImport”; this.exportObj = new ExcelExportObject(); this.exportObj.addEventHandler("onprogress", this.ExcelExportObject00_onprogress, this); this.exportObj.addEventHandler("onsuccess", this.ExcelExportObject00_onsuccess, this); this.exportObj.addEventHandler("onerror", this.ExcelExportObject00_onerror, this); var ret = this.exportObj.addExportItem(nexacro.ExportItemTypes.GRID, this.gd_excel, "Sheet1!A1"); this.exportObj.set_exportmessageprocess("%d [ %d / %d ]"); this.exportObj.set_exportuitype("exportprogress"); this.exportObj.set_exporteventtype("itemrecord"); this.exportObj.set_exporttype(nexacro.ExportTypes.EXCEL2007); this.exportObj.set_exportfilename("ExcelExport_Sample"); this.exportObj.set_exporturl(this.url); this.exportObj.exportData(); }
ExcelExportObjectのイベント
エクスポートの処理過程および結果はイベントを通じて確認することができます。
Event Name | Description |
---|---|
onerror | エクスポートの実行中、エラーの発生時にに発生するイベント |
onprogress | エクスポートの実行中、進行状態ごとに発生するイベント |
onsuccess | エクスポートの作業完了時に発生するイベント |
エラー対応
ファイルがダウンロードされなかったり(ダイアログが表示されなかったり)、ファイルの内容が壊れている場合
エクスポートの作業完了時にダウンロードされず(ダイアログが表示されず)、ブラウザ上にファイルの内容が壊れた状態で表示された場合、web.xmlにmime-mappingを追加した後にWASを再起動します。