nexacro-xeniは、サーバーモジュールで提供され、クライアントからのファイル形式でデータを処理する際に必要な機能を提供します。ファイルに含まれているデータをグリッドコンポーネントにインポートするか、グリッドに連結されたデータをファイルにエクスポートする機能を処理します。
nexacro-xeniは次のようなファイル形式と機能をサポートします。
ファイル形式 | 拡張子 | 機能 |
---|---|---|
Microsoft Excel 97-2003 | xls | export / import |
Microsoft Excel 2007/2010 | xlsx | export / import |
CSV format file | csv | import |
インストール
nexacro-xeniは、Javaベースのサーバーモジュールで提供され、JDKまたはJRE1.5以降のバージョンが必要となります。
指定されたwar(Web application ARchive)ファイルを直接配置したり、warファイルを解凍して、必要なファイルをWASの /WEB-INF/libディレクトリまたは定義されたクラスパスにコピーして使用することができます。提供されている主な jar(Java ARchive) ファイルは以下のとおりです。
commons-codec-1.5.jar commons-fileupload-1.3.1.jar commons-io-2.2.jar commons-logging-1.1.jar dom4j-1.6.1.jar log4j-1.2.13.jar nexacro-xapi-1.0.jar nexacro-xeni-1.1.jar poi-3.10-FINAL-20140208.jar poi-ooxml-3.10-FINAL-20140208.jar poi-ooxml-schemas-3.10-FINAL-20140208.jar poi-scratchpad-3.10-FINAL-20140208.jar stax-api-1.0.1.jar xmlbeans-2.3.0.jar
warファイルを直接配置せずに解凍してコピーする場合には、ライブラリのバージョンの違いのため問題が発生することがあります。
nexacro-xeniはApache POIライブラリを使用します。詳細 Apache POIの説明は以下のリンクを参照してください。
nexacro-xeniが動作するには、X-APIがインストールされている必要があります。インストール 項目を参照してください。
既存のコンテキストにファイルをコピーした場合には、以下の内容をweb.xmlファイルに追加する必要があります。
<servlet> <servlet-name>XExportImport</servlet-name> <servlet-class>com.nexacro.xeni.services.GridExportImportServlet</servlet-class> </servlet> <servlet> <servlet-name>XImport</servlet-name> <servlet-class>com.nexacro.xeni.services.GridExportImportServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>XExportImport</servlet-name> <url-pattern>/XExportImport</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>XImport</servlet-name> <url-pattern>/XImport</url-pattern> </servlet-mapping> <context-param> <param-name>export-path</param-name> <param-value>/export</param-value> </context-param> <context-param> <param-name>import-path</param-name> <param-value>/import</param-value> </context-param> <context-param> <param-name>monitor-enabled</param-name> <param-value>true</param-value> </context-param> <context-param> <param-name>monitor-cycle-time</param-name> <param-value>30</param-value> </context-param> <context-param> <param-name>file-storage-time</param-name> <param-value>10</param-value> </context-param>
jarファイルのリストと web.xmlに追加された内容は、nexacro-xeniバージョン1.1基準です。更新に基づいて、リストが変更されることがあります。
インストールの確認
通常の配置またはコピーされた場合、次のURLをWebブラウザで開いて、メッセージが正常に表示されることを確認します。
http://127.0.0.1:8080/XExportImport
URLは、インストールパスによって異なる場合があります。warファイルを直接配置した場合、URLは下記の通りです。
http://127.0.0.1:8080/nexacro-xeni-N/XExportImport
主な設定
サーブレットコンテキストにパラメータで設定された主な項目は以下の通りです。
項目名 | デフォルト値 | 説明 |
---|---|---|
export-path | /export | ダウンロードするファイルを一時的に保存するパスを指定します。 |
import-path | /import | グリッドコンポーネントにインポートファイルを一時的に保存するパスを指定します。 monitor-enabled設定値がtrueである場合には、データ処理後すぐに削除します。 |
monitor-enabled | true | ファイルマネージャを実行するかどうかを指定します。 falseに指定した場合には、ファイルマネージャが動作せず、一時ファイルを削除しません。 |
monitor-cycle-time | 30 | 一時保存されたダウンロードするファイルを削除する周期(サイクル)を「分」単位で設定します。 該当周期にファイルマネージャを実行して、削除するファイルをチェックし、削除処理します。 |
file-stroage-time | 10 | 一時的に保存されたダウンロードするファイルを保存する時間を「分」単位で設定します。 ファイルマネージャの実行時に生成した後、指定した時間が経過したファイルは削除されます。 |
詳しくは、配布される warファイルに含まれている readme.txtファイルを参照してください。
例題
単純なデータ処理の例を説明します。詳細なプロパティやメソッド、イベントは、ヘルプで以下の項目を参照してください。
Objects > Misc. Objects > ExcelExportObject
Export
Gridコンポーネントにバインドされたデータをサーバーに送信してファイルで生成し、生成されたファイルをダウンロードします。次の例では、Grid00コンポーネントにバインドされたデータをファイルで生成してダウンロードします。
this.Button00_onclick = function(obj:Button, e:nexacro.ClickEventInfo) { this.exportObj = new ExcelExportObject(); var ret = this.exportObj.addExportItem(nexacro.ExportItemTypes.GRID, this.Grid00, "Sheet1!A1"); this.exportObj.set_exporturl("http://localhost:8080/XExportImport"); this.exportObj.exportData(); }
Import
ユーザーが持っているファイルをサーバーに送信して、データセットに変換します。ユーザーは、変換されたデータセットをダウンロードして業務を処理します。
this.Button00_onclick = function(obj:Button, e:nexacro.ClickEventInfo) { this.importObj = new ExcelImportObject("Import00",this); this.importObj.addEventHandler("onsuccess", this.Import_onsuccess, this); this.importObj.set_importurl("http://localhost:8080/XExportImport"); this.importObj.importData("","output=ds","Dataset00=ds"); } this.Import_onsuccess = function(obj,e) { this.Grid00.createFormat(); }