EXIO (Excel Input/Output)

最終更新日: 2022年6月16日

書き込み

Excelで作成した見積書の雛形を示します。Wagbyアプリケーションで、新規登録時および更新時に、このExcelファイルに値を書き込むようにします。

対象とするExcelファイル

ダウンロード

このサンプルのExcel雛形をダウンロードできます。

実行例

Wagbyで作成した見積モデルの新規登録画面です。

見積 新規登録(1)

各項目に値を入力します。ここで「読み書きExcel」項目に、見積書の雛形ファイル(図1)を登録します。

見積 新規登録(2)
見積 新規登録(3)

データを登録しました。このタイミングで、見積書雛形に値が書き込まれます。

登録のタイミングで見積書雛形ファイルに値が書き込まれる

Excelファイルをクリックするとダウンロードできます。このファイルを開いて内容を確認できます。

見積内容が出力されたExcelファイル

モデルの設計

アドオンギャラリー

このモデルはアドオンギャラリーから「見積」をインストールすると自動的に用意されます。

アドオンギャラリー

2つのモデル「見積」と「見積内訳」を用意します。見積内訳は子モデルとなり、明細部を管理します。

「見積」と「見積内訳」

見積モデルに用意した項目は次の通りです。「読み書きExcel」項目は、Excel操作ブロックで利用する対象項目です。

見積モデルに用意した項目

見積モデルの画面レイアウト設計(詳細、登録、更新画面)を示します。

見積モデル 画面レイアウト

もう一つの、子モデル部となる見積内訳モデルに用意した項目は次の通りです。親子モデル同時更新画面機能を使い、見積モデルと同時に登録や更新を行います。

外部キー項目「親見積ID」は、親モデル(ここでは「見積」)を指定します。

外部キーの設定

同じく外部キー設定として、親の主キー(ID)と "等しい" 条件で紐づくものとします。

外部キー項目 検索条件の設定

見積内訳モデルは一覧画面のレイアウトを設定します。ここでは1つのデータを2行にまたがって表示するレイアウトとしています。

見積内訳 一覧表示画面レイアウト

スクリプト

今回は見積データの登録時に、用意したExcelの見積書へデータを書き込むとします。

「外部連携」ブロック群に用意された「Excel」ブロックを使います。

Excelブロック

登録時のタイミングで、指定したファイル項目(今回は「読み書きExcel」項目)に添付されたファイルへの書き込みを指定します。

書き込み操作

「外部連携」ブロック群に用意された「マッピング」ブロックを使います。

マッピングブロック(1)

Excelブロックのマッピング位置に、マッピングブロックを配置します。

マッピングブロック(2)

マッピングブロックは「項目」をどの「シート」のどの「セル」と対応づけるか、を指定します。

マッピングブロック(3)

このマッピングは複数指定できます。右クリックで複製操作を行います。

ブロックの複製(1)
ブロックの複製(2)

子モデルのマッピング

注意

子モデルのマッピングは書き込みのみ対応しています。(読み込みでは子モデルを指定することはできません。)

子モデル「見積内訳」のマッピングを行うこともできます。Excelブロック群から「子モデル」ブロックを選びます。

子モデルブロック

Excelブロックの子モデル部に配置します。

子モデルブロックを配置する

子モデルのマッピングは行わない

子モデルのマッピングは必須ではありません。未セットの場合は、子モデルのマッピングは行いません。

子モデルデータの部分に、対象の子モデルのデータ取得ブロックを配置します。文字列ブロックを使ってシート名も指定します。

さらに子モデルが開始される(Excelの)開始行を、数値ブロックを使って指定します。

1データの行数を指定することもできます。未指定時は1になります。今回使うExcelの雛形ファイルは、子モデル部は2行で1データとなっているため、ここに2を指定します。

子モデルマッピングの基本設定

子モデルのマッピングを行う「項目」ブロックを選びます。

(子モデル用の)項目ブロック (1)

マッピング位置にブロックを配置します。

(子モデル用の)項目ブロック (2)

モデルブロック群から子モデルを指定するブロックを選びます。

子モデルを指定するブロック (1)

子モデルのブロックと、対応するセルを関連づけます。

子モデルを指定するブロック (2)

ブロックを複製し、複数の対応ルールを設定できます。
このとき、:1を付与することで次の行のデータを指定できます。これは「指定セルの1行下」を意味します。(X:0はXと同じ)

もし1データを3行にわたって展開する場合、さらにブロックを増やして:2を付与してください。
指定できるのは0以上の数値です。
スクリプトで出力する行数に応じて、Excelファイルのレイアウトも調整してください。出力したい行数分、Excelファイル上でスペースを確保しておく必要があります。
子モデルを指定するブロック (3)

親モデル「見積」に関するマッピングルールを設定しました。

見積モデルとのマッピング (最終)

子モデル「見積内訳」に関するマッピングルールを設定しました。

見積内訳モデルとのマッピング (最終)

全体の構造を示します。

全体の構造 (最終)

見積モデルの更新のタイミングでも、同じブロックを用意します。これによって登録時と更新時に Excel ファイルを更新します。

登録時に設定したスクリプトをコピーし、更新時のスクリプト欄にペーストするとよいでしょう。
更新時の操作

読み込み

Excelブロックを "読込む" とすると、添付された Excel ファイルの内容から Wagby のデータを生成します。

登録画面で利用者が入力していた値は、Excel ファイルの内容に上書きされます。

登録時に指定したExcelファイルの内容を読み込む

子モデルは未対応

読み込み処理は、子モデルには対応していません。今回の例では、見積モデル部分のみ読み込みできます。(見積内訳部分は読み込まれません。)子モデルマッピングの部分は空白としてください。

仕様・制約

  • Excelのセルに改行コードが含まれていた場合、読み込み時に改行コードは無視されます。
  • テキストエリアに含まれる改行コードをExcelに出力する場合、改行コードは無視されます。
  • モデル参照項目はID部になります。そのためルックアップを使って内容部を取得し、その内容部とExcelのやりとりを行ってください。