EXCELファイルアクセス

この文書は\docs\sample\EXELファイルアクセス.mzaxに基づいて説明しています。

  1. サンプルアプリケーションの概要
    1. 概要

    2. Excel ファイルアクセスコンポーネントは、Microsoft Excel のファイルを開いてセルの値や書式を取得・変更したり、テーブル全体を新しいファイルとして保存したりするために用います。
      Excel ファイルアクセスコンポーネントは、アプリケーションビルダーのメニューから以下のように選びます。

      [コンポーネント追加]-[入出力]-[稼働日時情報.mzcx]

      参考:コンポーネントリファレンス>EXCELファイルアクセス

    3. 用途

    4. Excel ファイルに対するデータの入出力を行いたいとき。

      ※EXCELファイルの値の操作が主な場合は、[データベースアクセス]コンポーネントを使用し、SQLでデータの取得、更新を行 うこともできます。

  2. イベントとメソッド
    1. イベントとメソッド

      ここで使用するメソッドを表 1 に示します。
      Excelファイルアクセスコンポーネントから発生するイベントはありません。
        使用されるメソッド 処理内容
        ファイルからブックを読み込んで選択する(String) Excelファイルを名前指定で読み込んで、そのファイルのブックを現 在の編集対象とする。
        空のブックを作成して選択する(XLS形式)() 新しいExcelファイルのブックを作成して現在の編集対象とする。
        ファイルに現在のブックを書き出す(String) 現在のブックを名前指定でExcelファイルに書き出す。
        現在のブックのシートを選択する(int) 現在のブックに含まれるシートを位置指定で選択して現在の編集対象とする。
        現在のブックにシートを作成して選択する(String) 現在のブックに新しいシートを名前指定で作成して現在の編集対象とする。
        現在のシートの行を選択する(int) 現在のシートの行を位置指定で選択して現在の編集対象とする。
        現在のシートに行を作成して選択する(int) 現在のシートに位置指定で行を作成して現在の編集対象とする。
        現在のシートの最後の行位置を取得する() 現在のシートに含まれるデータの最終行の位置を取得する。
        現在の行のセルを選択する(int) 現在の行のセルを位置指定で選択して現在の編集対象とする。
        現在の行にセルを作成して選択する(int) 現在の行に位置指定でセルを作成して現在の編集対象とする。
        現在の行の最後のセル位置を取得する() 現在の行に含まれるデータの最終列の位置を取得する。
        現在のセルの値を文字列として取得する() 現在のセルの値を文字列として取得する。
        現在のセルの値を設定する(String) 現在のセルの値を文字列指定で設定する。
        現在のブックにセル書式を作成して選択する() 現在のブックに新しいセル書式を作成して現在の編集対象とする。
        現在のブックのセル書式を選択する(short) 現在のブックに含まれるセル書式を識別番号指定で選択して現在の編集対象とする。
        現在のセルのセル書式を選択する() 現在のセルのセル書式を現在の編集対象とする。
        現在のセルに現在のセル書式を設定する() 現在のセルに現在のセル書式を反映させる。
        現在のセル書式を複製して選択する() 現在のセル書式を複製して新しいセル書式を作成し現在の編集対象とする。
        現在のセル書式が塗りつぶし有か判定する() 現在のセル書式の塗りつぶし指定の有無を取得する。
        現在のセル書式の塗りつぶし色番号を取得する() 現在のセル書式の塗りつぶし色を特定するためのExcel内の番号を取得する。
        現在のセル書式に塗りつぶし色を設定する(short) 現在のセル書式に塗りつぶし色をExcel内の番号指定で設定する。
        色番号から色オブジェクトを取得する() Excel内の色番号からMZで利用できる色オブジェクトを取得する。
        色オブジェクトに近い色番号を取得する(Color) MZで扱う色オブジェクトを指定して最も近いExcel内の色番号を取 得する。
        罫線種別「細線」を取得する() 罫線種別「細線」の識別番号を取得する。
        現在のセル書式に上罫線を設定する(short) 現在のセル書式に識別番号を指定して上罫線の種別を設定する。
        現在のセル書式に下罫線を設定する(short) 現在のセル書式に識別番号を指定して下罫線の種別を設定する。
        現在のセル書式に左罫線を設定する(short) 現在のセル書式に識別番号を指定して左罫線の種別を設定する。
        現在のセル書式に右罫線を設定する(short) 現在のセル書式に識別番号を指定して右罫線の種別を設定する。
        現在のブックにフォントを作成して選択する() 現在のブックに新しいフォントを作成して現在の編集対象とする。
        現在のフォントの色番号を取得する() 現在のフォントの色を特定するためのExcel内の番号を取得する。
        現在のフォントの色を設定する(short) 現在のフォント色をExcel内の番号を指定して設定する。
        現在のセル書式のフォントを選択する() 現在のセル書式のフォントを現在の編集対象とする。
        現在のセル書式に現在のフォントを設定する() 現在のセル書式に現在のフォントを反映させる。

  3. コンポーネント使用例 
  4. 概要と使用例

    付属のサンプルアプリケーションを使って、Excelファイルアクセスコンポーネントの使い方を説明します。

    1. アプリケーションビルダーを起動し、[ロード]ボタンを押して“AP_DATA¥Sample¥EXCELファイルアクセ ス.mzax”をロードしてください。
      [実行]もしくは[実行(設定可)]ボタンをクリックすると、サンプルアプリケーションが起動します。
    このサンプルでは、Excelファイルの特定のセルを指定して文字列を入出力する例と、Excelファ イルに含まれるデータ全体 をMZ Platformのテーブルデータとして入出力する例を示します。
    それぞれの機能は画面上側のタブで「セル指定」および「テーブル全体」を選択す ることで切り替えて使用することができます。
    サンプルアプリケーション実行画面
    1. セル指定で読み込み

    2. 「セル指定」タブではExcelファイルに含まれる特定のセルの値をMZ Platformのテキストフィールドの文字列として入出力する例を示します。
      1. 動作確認
        1. 値の読み込み
        2. 「ファイルから読み込む」ボタンを押すとファイル選択ダイアログが開くので、サンプル アプリケーションと同じフォルダにある “AP_DATA\Sample\Excelファイル(セル指定用).xls”を選択します。
        3. 値の表示
        4. Excelファイルに含まれる特定セルのデータが読み込まれて、MZ Platformのテキストフィールドに表示されます。
      2. 処理の流れ
        1. ファイルを読み込んで➀ブックを選択状態とし、➁次にシートの選択、③行の選択、④最後にセル の選 択を実行します。
        2. この状態になったら選択状態のセルの値を取得することができます。
        このサンプルでは、特定位置のセル2つの値を取得して2つのテキストフィールドに文字列を設定していま す。

    [編集画面図1]

    セルデータ読込例
    1. セル指定で書出し

      1. 動作確認
      2. 「ファイルに書き出す」ボタンを押すと、現在開いているExcelファイルに対して特定セルの値を書き換えて別名保 存することができます。
      3. 処理の流れ
        1. Excelファイルを開いてブックとシートを選択している状態なので、行を選択してセルを選択します。
        2. この状態で現在のセルの値を設定することができます。
        3. フィー ルドの文字列を取得して設定します。
        4. このサンプルでは2つのフィールドから値を取得してセルの値を設定していま す。
        5. セルの値の設定が終了 したら、ファイルに出力します。

    [編集画面図2]

    1. テーブル全体を読み込み

    2. サンプルアプリケーションの「テーブル全体」タブでは、Excelファイルに含まれるデータ全体を、MZ Platformのテーブルデータとして入出力する例を示します。

      1. 動作確認
        1. 値の読み込み
        2. 「ファイルから読み込む」ボタンを押すとファイル選択ダイアログが開くので、サンプル アプリケーションと同じフォルダにある “AP_DATA\Sample\Excelファイル(テーブル全体用).xls”を選択します。
        3. 値の表示
        4. Excelファイルに含まれ るセルのデータとセルの塗りつぶし色およびフォント色が読み込まれて、MZ Platformのテーブルに表示されます。
      2. 処理の流れ
        1. ➀ファイルからブックを読み込んで選択し、➁シートを選択、③シート上の各セルを読み込んでテーブルデータを作成 し、 ④GUIのテーブルにデータを設定しています。(編集画面図3~8)
        2. ※このサンプルでは、選択シートは最初のシート(0番目)に固定しています。
      3. テーブル本体の読み込み
        1. まずExcelファイルに含まれる実体のあるデータのサイズを取得して、読み込み用 のテーブルを作成してから、各セルの値を読み込みます (編集画面図4)。
          Excelファイルには実体のあるセルとそれが含まれる行があり、実体のある最後の行位置はメソッドで直接取得できます。
        2. 行ごとに実体のある最後の列位置は異なるため、一度Forループですべての行を調べる必要があります(編集画面図5) 。
          このForループが完了すると最後の列位置の最大値が得られるので、読み込み用のテーブルで列数と行数を確保します。

        このサンプルではセルの値のほかに、セルの背景色とフォント色を読み込むので、それらの読み込み用 のテーブルを変数に準備しています。
      4. 実際に読み込む処理
        1. 3で説明した通り、行とセルには実体の有無があるので、全体を読み込むためには実際にデータが あるかどうか確認しながらの読み込みになります(編集画面図6)。
        2. セルの値の取得はセル指定での取得と同様ですが、セルの背景色はセル書式から、セルのフォント 色はセル書式に設定されたフォントから取得しますので、それらを選択する処理が必要になります。
        3. セルの値を読み込む際に、ここではNull値かどうかの確認と空文字かどうかの確認をして、有効な 文字列が含まれていたら読み込 むことにしています(編集画面図7)。
        4. フォント色の読み込みは、有効な文字列が含まれていた場合のみ行うために、その処理の後ろに記述 しています。
        5. Excelのセルのフォント色は色番号で取得する形式になっているので、その番号をMZ Platformで利用できる色オブジェクトに変換する処理が必要になります。
        6. セルの背景色は、まずセルに塗りつぶし指定があるかどうか確認して、あれば塗りつぶし色を取得します。フォント色と同様 に色番号 からの変換が必要です(編集画面図 8)。
    実行画面例




    編集画面図3(クリックして拡大)
    編集画面図4(クリックして拡大)
    編集画面図5(クリックして拡大)
    編集画面図6(クリックして拡大)
    編集画面図7(クリックして拡大)
    編集画面図8(クリックして拡大)

    1. テーブル全体の書出し

      1. 動作確認
      2. 「ファイルに書き出す」ボタンを押すと、現在MZ Platformのテーブルに表示されているテーブルデータの値とセルの背景色と文字色が指定したExcelファイルに書き出されます。
        このサンプルのGUIテーブルは、 テーブル上でのマウス右ボタンクリックでポップアップメ ニューが出るようにしてあり、 テーブルのデータを自由に作成してフォントやセルの背景色を変更することができますので、いろいろなテーブルを作成して出力して みてください。
        ※なお、「元の書式保持」にチェックをして「ファイルに書き出す」ボタンを押すと、読み込んだファイルの書式をすべて保持したま まテーブルの値のみを上書きしてファイルに保存しますが、ここでは説明を省きます。
      3. 処理の流れ
      4. この例では、新しいExcelファイルを作成してその中にテーブルデータや色を書き出していきます。
        ➀まずは空のブックを作成して 選択し、➁必要に応じて書 式を作成、➂現在のブックにシートを作成して選択し、➃テーブルを書き出して、⑤最後に現在のブックをファイルに書き出すという流れに なります(編集画面図9)。
        セルの値だけを出力する場合は書式を作成する必要がありませんが、今回のようにセルの色やフォントの色を指定する際や、罫線を設 定する場合には書式の作成が必要になります。
      5. セル書式の書出し
      6. セルの書式は作成すると整数のインデックス番号が付与されるので、後から利用するためにこの番号を覚えておく必要あります。この例で は、セルを囲む罫線を細線に指定した書式を作成しています(編集画面図10)。
      7. テーブルの書出し
      8. テーブルの書き出しでは、値とセル背景色およびフォント色用の3つのテーブルデータを書き出します。
        シートを選択した状態で、すべての行についてシートに行を作成して選択し、行に含まれるすべてのセルについて行にセルを作成して選択 し、値を出力します(編集画面図11 および編集画面図12)。
        このサンプルでは、セルの作成と同時に各セルの書式を個別に設定するために最初に作成した書式を複製して最後に反映させています(編 集画面図12)。
      9. セルの塗りつぶし
      10. 読み込み処理で説明したとおり、セルの塗りつぶし色の出力では、MZ Platformのセルの背景色をそのまま用いることができません。
        これに対応するために、このコンポーネントでは色を指定するとExcelの塗りつぶし色に用いることができる近い色の番号を取得でき る機能を提供しています。
        この機能を用 いて、Excelファイルのセルの色を指定します(編集画面図13)。
      11. フォント色の出力
      12. フォント色の出力では、さらにフォントの作成という処理が必要になります。
        セル書式と同様に、ブックに関してフォントを作成し、そのフォントの色をセルの背景色と同様に番号指定で設定し、最後に作成したフォ ントをセル書式に設定します(編集画面図14)。
    実行画面例
    編集画面図9(クリックして拡大)
    編集画面図10(クリックして拡大)
    編集画面図11(クリックして拡大)
    編集画面図12(クリックして拡大)
    編集画面図13(クリックして拡大)
    編集画面図14(クリックして拡大)