Excel連携で使用するExcelファイル(拡張子.xlsx)の作成方法を説明します。(*1)

基本的には、セルの名前にデザイナーで定義した入力項目の「項目名称」を定義していきます。
ただし、デザイナーの項目定義にはサポートされない項目がありますのでご注意ください。

サポートされる項目定義

Excel に対応するデザイナーの項目定義は以下の通りです。

項目定義 補足
テキスト(文字)  
テキスト(数値)  
テキスト(日付)  
テキスト(時刻・時間)  
ハイパーリンク(テキスト)  
コンボボックス Excel のドロップダウンリストを使用します。
チェックボックス 空白ならOFF、空白以外ならONになります。
ラジオボタン 空白ならOFF、空白以外ならONになります。
同じラジオボタングループにONが重複しているときは、タブ順が後方のラジオボタンのみONになります。
貼付画像 Excel に挿入された画像を取り込みます。
デザイナーで複数の貼付画像項目が定義されているとき、挿入された画像の座標の左上(Y座標の上)から右下(X座標の右)の順で取り込みます。
取り込みは先頭ページから末尾ページへ、上から下へ行われます。
画像の取り込み対象は Excel の先頭のワークシートと2番目のワークシートのみです。
Excel のセルの名前は使用しません。

Excel にセルの名前を定義

  1. 「ユーザーID」をセルに定義します。
    「\user」を任意のセルに名前として定義します。
    このセルに FormPat のログインユーザーIDをセルの値として入力します。
  2. 「フォームID」をセルに定義します。
    「\id」を任意のセルに名前として定義します。
    このセルに FormPat の「フォーム設定」画面で登録した「フォームID」をセルの値として入力します。
  3. Excel へ入力するデータが1データか複数データか定義します。
    「\type」を任意のセルに名前として定義します。
    このセルに、Excel のひとつのファイルが FormPat の1データ(ExcelファイルとFormPatデータが1:1)なら 1、
    Excel のひとつのファイルが FormPat の複数データ(ExcelファイルとFormPatデータが1:n)なら 2 を入力します。
    セルの名前に「\type」が未登録なら 1 が既定になります。
  4. セルの名前にデザイナーの「項目名称」と同じ名称を定義します。
    ただし、「\type」が 2(ExcelファイルとFormPatデータが1:n)の明細繰り返し項目では「項目名称」の末尾に _ と明細行数を付けます。詳しくは下記「明細行項目について」を参照してください。
  • 「\type」が 1(ExcelファイルとFormPatデータが1:1)のとき
    入力項目用のセルは任意の位置に定義できます。
    デザイナーと同様に Excel のワークシート内に入力項目を自由に配置できます。

  • 「\type」が 2(ExcelファイルとFormPatデータが1:n)のとき
    入力項目用のセルはExcel の2行目のみに定義できます。
    Excel の1行目は見出し行、2行目以降が入力項目になります。
    3行目以降にセルの名前の定義は必要ありません。同じ列の2行目のセルの名前と同じとして処理されます。

セルに名前を定義する方法は、下のリンク先の「セルに名前を付ける」・「選択範囲から名前を定義する」を参照してください。
Microsoftのサイトへリンク

明細行項目について

デザイナーの「明細行数」が1以上の明細繰り返し項目の定義は以下のように行います。

  • 「\type」が 1(ExcelファイルとFormPatデータが1:1)のとき
    • 明細行のセルは同じ列に上下に明細行数の連続したセルの範囲にセルの名前を定義します。(明細行のセルは縦方向に結合しないでください。結合後の明細行数と判断されません。)
    • Excelファイルの明細行数がデザイナーの「明細行数」以上で、FormPatの「フォーム設定」画面の「ページ追加ボタンを表示する」がONなら、Excelファイルのアップロード時に自動的にページ追加が行われます。

  • 「\type」が 2(ExcelファイルとFormPatデータが1:n)のとき
    • 明細行のセルは2行目に横並びでセルの名前を定義します。
      このとき、セルの名前は「項目名称」の末尾に _ と明細行数を付ける必要があります。
      例えば、「項目名称」が「商品」の明細1行目は「商品_1」、明細2行目は「商品_2」になります。
    • Excelファイルのアップロード時のページ追加は行われないため、明細行数はデザイナーの「明細行数」以下で定義してください。

サポート環境・留意点

  • Excel のワークシートは先頭のシートのみが取り込みの対象です。
  • Excel の拡張子は .xlsx のみをサポートします。
  • Excel は Windows、iOSおよびAndroid のアプリケーションソフトをサポートします。
  • Excel の図形が挿入されているExcelファイルは使用できません。
  • Excelの「セルの書式設定」の「表示形式」に、デザイナーの「項目属性」およびセルの入力値に対して不適切な組み合わせの定義がされている場合、正しくデータが取り込めないことがあります。(*2)
  • サポートされないExcel関数があります。その場合、Excel から関数を除外してください。
    Excel関数のサポート有無は GitHubサイト で確認してください。
    GitHubサイトのClosedXMLへリンク
    サイトでは [develop]→[tags]→[0.95.3]を選択します。
    xxxx.csの一覧表示から、それぞれのxxxx.csを選択するとコードが表示されます。
    ce.RegisterFunction(“関数名”… がサポート関数、
    //ce.RegisterFunction(“関数名”… が未サポート関数です。
    ※記載と相違がある場合は ClosedXML の仕様となります。
  • Excel関数ではセルの名前は使用できません。
    A1やA1:A10のように列・行のアルファベット・数字を使用してください。

Excel の検証

作成したExcelファイルが正しく定義されているか検証を行えます。

Excelファイルの検証は、「ホーム」画面の「Excelの検証」を実行します。
ただし、初期状態では「ホーム画面」に「Excelの検証」は未登録ですので、以下の手順でメニューへ登録を行います。

  1. 「メニュー設定」画面から「Excelの検証」を登録するメニューを選択します。
  2. 「アドオン名称」に「Excelの検証」と入力します。
    任意の名称でも入力できます。
  3. 「アドオン情報」に「WebExcelImportCheck.aspx」と入力します。
  4. メニューに上記を追加します。

「ホーム」画面で「Excelの検証」を選択し、Excelファイルをアップロードすると検証結果が表示されます。

デザイナーの「項目名称」からExcelファイルを検証します。
デザイナーの「項目名称」に定義されていないExcelファイルの名前の定義は無視されます。

メッセージ例 説明
OK 正常に取り込まれます。
N/A 明細行数オーバー,ページ追加で対応可 明細行数がデザイナーの「明細行数」より多い。
ただし、「\type」が 1(ExcelファイルとFormPatデータが1:1)かつ「フォーム設定」画面の「ページ追加ボタンを表示する」がONなら自動的にページ追加が行われます。
NG セルが2行目以外 「\type」が 2(ExcelファイルとFormPatデータが1:n)のとき、セルの名前が2行目に定義されていない。
N/A セルが未定義,データ連携なし デザイナーの項目名称と一致するセルの名前が未定義。
該当項目の取り込みは行われません。
N/A 読み取り専用,データ連携あり デザイナーの「読み取り専用」がOFFになっている。
該当項目の取り込みは行われます。
N/A 可視OFF,データ連携あり デザイナーの「可視表示 – 入力」がOFFになっている。
該当項目の取り込みは行われます。
NG 明細1行目が未定義 「\type」が 2(ExcelファイルとFormPatデータが1:n)のとき、明細1行目のセルの名前が未定義。(項目名称_1)
該当項目の明細1行目の取り込みは行われません。
明細2行目以降の検証は行われません。

参考情報

  • 入力対象のセルのみ入力を有効にする方法
    1. すべてのセルを選択します。(ワークシートの左上の角をクリックします)
    2. [ホーム]タブ→[書式]→[セルの書式選択]を選択します。
    3. 「セルの書式設定」の[保護]タブを選択し、[ロック]のチェックをオンにします。
      (Excelファイルを新規作成したとき、セルの[ロック]の既定値はオンです)
    4. 入力可能にしたいセルを選択します。(複数のセルの選択も可能です)
    5. [ホーム]タブ→[書式]→[セルの書式選択]を選択します。
    6. 「セルの書式設定」の[保護]タブを選択し、[ロック]のチェックをオフにします。
    7. [校閲]タブ→[シートの保護]を選択します。
    8. 「シートの保護」の[ロックされていないセル範囲の選択]のチェックのみオンにし、以外のチェックはオフにします。
  • セルの枠線を非表示にする方法
    「ワークシートの枠線を表示または非表示にする」の「ワークシートの枠線を非表示にする」Microsoftのサイトへリンク
  • ドロップダウンリストの作成方法
    「ドロップダウン リストを作成する」Microsoftのサイトへリンク
  • セルに入力する値を検証する方法
    「セルにデータの入力規則を適用する」Microsoftのサイトへリンク

*1 FormPat v8.0.0 以降の機能です。
*2 例えば、デザイナーの「項目属性」が「テキスト(文字)」でセルの入力値が文字列に対して、「セルの書式設定」の「表示形式」に「ユーザー定義」で”aaa”や”aaaa”が定義されている場合等。