Excelファイルの内容をフォームに取り込む
このページでは、Excelファイルをアップロードし、その内容をフォーム上の項目に取り込む方法を紹介します。フォーマットに沿って作成されたExcelファイルを業務ロジックで解析し、その内容をフォーム上の対応する項目の入力データとして利用できます。
以下の流れで設定を行います。
- フォームを作成する
- 業務ロジックを作成する
「Accel-Mart Quick アプリケーション管理者」ロールを持つユーザで実施してください。
完成イメージ

完成サンプル
以下の完成サンプルをダウンロードしてご活用ください。
- メニュー「管理」-「ノーコード開発」- 「Webデータベース一覧」からアプリケーション一覧画面を表示します。
- ツールバーの「インポート」をクリックし、Webデータベース インポート画面を表示します。
- web_database_export.zipのファイルをダウンロードし、Webデータベース インポート画面からインポートします。
https://お客様環境ホスト名.accel-mart.com/imart/forma/normal/view/regist_application_view/excel_parse_testのURLへアクセスし、アプリ実行画面を表示します。- excel.xlsxのファイルをダウンロードし、ダウンロードしたファイルを「ファイルアップロード」アイテムからアップロードします。「Excel取り込み」ボタンをクリックすることでExcelファイルの内容をフォーム上に取り込むことが可能です。
フォームを作成する
アクション設定「業務ロジック」を利用して「ボタン(イベント)」のクリックイベントに対してロジックフローを呼び出すフォームを作成します。
-
「ファイルアップロード」アイテムと「ボタン(イベント)」アイテムをフォームに配置します。

-
1つのExcelファイルのアップロードを想定するため、「ファイルアップロード」アイテムのプロパティに以下を設定します。
-
基本設定タブの添付ファイルの個数(最大):
1
-
許可する拡張子 :
xlsx
-
-
フォームのツールバーから「アクション設定」をクリックし、イベント設定ダイアログを表示します。

-
「アイテムイベント」タブから「ボタン(イベント)」のクリックイベントに対する設定を追加します。追加したイベントの「設定」アイコンをクリックし、アクション設定ダイアログを表示します。

-
アクション「業務ロジック」を追加し、追加したアクションの「設定」アイコンをクリックします。

-
ロジックフローのひな形が生成され、ロジックフローの編集画面が表示されます。

業務ロジックを作成する
続いて、「ボタン(イベント)」のクリックイベントから呼び出されるロジックフローの処理内容を作成します。ロジックフローの処理内容の大まかな流れは以下のとおりです。
- 「ファイルアップロード」アイテムにアップロードされたExcelファイルのデータを取得します。
- 取得したExcelファイルのデータをストレージへ書き出します。
- ストレージ上のExcelファイルに対してExcel入力定義タスクを実行し、Excelファイルの内容を解析して各セルに入力された値を取得します。
- 取得したセルの入力値を返却します。

図:作成する業務ロジック
以下のタスクを使用します。
以下のユーザ定義タスクを使用します。
アップロードされたExcelファイルのデータ取得
「ファイルアップロード情報取得」タスクを利用して 「ファイルアップロード」アイテムにアップロードされたExcelファイルのデータを取得する処理を作成します。
少し複雑ですが、2つの「ファイルアップロード情報取得」タスクを呼び出してファイルのデータを取得する必要があります。1つ目の「ファイルアップロード情報取得」タスクでは、対象の「ファイルアップロード」アイテムにアップロードされたファイルのID情報(fileId)を取得します。2つ目の「ファイルアップロード情報取得」タスクでは1つ目のタスクで取得したファイルのID情報(fileId)をもとにファイルのデータを取得します。
-
以下のようにタスクを配置します。
- 「ファイルアップロード情報取得」タスクは、パレットのカテゴリ「IM-BIS」から配置します。
- 「分岐」タスクは、パレットのカテゴリ「基本」から配置します。

-
1つ目の「ファイルアップロード情報取得」タスクをダブルクリックし、マッピング画面を表示します。以下のようにマッピングを行います。表示中のフォームとフォーム上の「ファイルアップロード」アイテムの情報を指定し、「ファイルアップロード」アイテムにアップロードされたファイルのメタデータを取得します。
始点 終点 入力 - formaParam - imfr_application_id<string>im_bisFileUpload1 - applicationId<string>入力 - formaParam - imfr_insert_id<string>im_bisFileUpload1 - insertId<string>入力 - formaParam - imfr_process_key<string>im_bisFileUpload1 - processKey<string>定数 - upload_item_id<string>im_bisFileUpload1 - upload_item_id<string>
入力値upload_item_id-
「ファイルアップロード情報取得」タスクの入力値
upload_item_idは取得対象の「ファイルアップロード」アイテムのプロパティ 「アイテム識別ID」を指定します。

-
-
「分岐」タスクをクリックし、タスク固有設定のパネルを表示します。条件式に
${sizeOf(im_bisFileUpload1)==1}を設定します。アップロード済みのファイルがあるかどうかをチェックし、ファイルがあれば、後続の処理に遷移させます。ファイルがなければ終了タスクに遷移させます。
-
2つ目の「ファイルアップロード情報取得」タスクをダブルクリックし、マッピング画面を表示します。以下のようにマッピングを行います。1つ目のタスクで取得したファイルのメタデータ(
fileId)を指定してファイルのデータを取得します。始点 終点 入力 - formaParam - imfr_application_id<string>im_bisFileUpload2 - applicationId<string>入力 - formaParam - imfr_insert_id<string>im_bisFileUpload2 - insertId<string>入力 - formaParam - imfr_process_key<string>im_bisFileUpload2 - processKey<string>入力 - formaParam - imfr_process_key<string>im_bisFileUpload2 - processKey<string>定数 - upload_item_id<string>im_bisFileUpload2 - upload_item_id<string>im_bisFileUpload1 - fileId<string>im_bisFileUpload2 - fileId<string>
Excelファイルのストレージへの書き出し
「ファイルアップロード情報取得」タスクを利用して取得したExcelファイルのデータをストレージに書き出す処理を作成します。
「セッションストレージ取得」タスクを利用してファイルを書き出すセッションスコープストレージを取得します。取得したセッションスコープストレージに対して「ストレージ出力(バイナリ)」タスクを利用してExcelファイルのデータを書き出します。
-
以下のようにタスクを配置します。
- 「セッションストレージ取得」タスクと「ストレージ出力(バイナリ)」タスクのどちらもパレットのカテ ゴリ「ストレージ操作」から配置します。

-
「セッションストレージ取得」タスクをダブルクリックし、マッピング画面を表示します。以下のようにマッピングを行います。「identifier」関数を利用して一意なIDを生成し、こちらのIDのパスを指定してセッションスコープストレージを取得します。
始点 終点 関数 - ID生成 - identifier<string>im_sessionStorage1<string>
-
「ストレージ出力(バイナリ)」タスクをダブルクリックし、マッピング画面を表示します。以下のようにマッピングを行います。取得したセッションスコープストレージを書き出し先のストレージと して指定します。取得済みのExcelファイルのデータを書き出し対象のバイナリデータとして指定します。
始点 終点 im_bisFileUpload2 - fileData<binary>im_writeBinaryToStorage1 - binary<binary>im_sessionStorage1 - im_sessionStorage1<storage>im_writeBinaryToStorage1 - storage<storage>
ストレージ上のExcelファイルの解析
ユーザ定義「Excel入力定義」を利用してExcelファイルから指定したセルの入力値を取得する処理を作成します。
-
パレット「ユーザ定義追加」から「Excel入力定義」を追加し、Excel入力定義編集画面を表示します。

-
Excel入力定義編集画面にて解析対象のExcelファイルに対して入力値の取得対象のセルの情報を設定し、ユーザ定義を登録します。単項目のセルについては、セル入力定義にて対象のセルの位置を指定します。明細項目のセルについては、範囲指定入力定義にて対象のセルの範囲を指定します。

-
登録したユーザ定義タスクをパレットから配置し、配置されたユーザ定義タスクをダブルクリックし、マッピング画面を表示します。以下のようにマッピングを行います。取得済みのセッションスコープストレージを解析対象のExcelファイルとして指定します。

取得したセルの入力値の返却
ユーザ定義「Excel入力定義」を利用して取得した各セルの入力値を出力し、フォームへ返却します。
Excelのセルから取得した入力値が存在するかをチェックし、存在すればフォームへの返却を行う終了タスクに遷移させます。入力値が存在しなければエラーメッセージを返却 する終了タスクに遷移させます。
-
以下のようにタスクを配置します。
- 「ファイルおよびディレクトリの削除」タスクは、パレットのカテゴリ「ストレージ操作」から配置します。
- 「分岐」タスクは、パレットのカテゴリ「基本」から配置します。
- 「終了」タスクは、パレットのカテゴリ「基本」から配置します。

-
「ファイルおよびディレクトリの削除」タスクをダブルクリックし、マッピング画面を表示します。以下のようにマッピングを行います。不要になったセッションスコープストレージ上のファイルを削除します。
始点 終点 im_sessionStorage1<storage>im_removeStorage1<storage>