ExcelOutput - Excelデータへの出力

Excelファイルを更新し、ストリームに出力します。本コンポーネントでは、フロー実行時に、次のようなことができます。

このコンポーネントを使用するには、Excelビルダーを起動して、テンプレートとするExcelファイルを読み込み、ワークブック上のセルをコンポーネントのフィールド定義と関連づける必要があります。

詳細については下記トピック「Excelビルダーの使い方」を参照してください。

■ストリーム情報

入力フォーマットRecord
接続数1
説明 Excelファイルに書き込むレコードです。
Excelビルダーで定義したレコード領域に書き込みます。書出し処理で詳細なアクセス方法を指定可能です。
レコード領域が複数定義されている場合には、その数だけ入力ストリームが表示され、レコードの名前が各ストリームの名前となります。
フィールド名の定義はExcelビルダー上で行い、フローデザイナー上では変更できません。
レコード領域にすべてのレコードが書ききれなかった場合、エラーになります。
出力フォーマットBinary

■コンポーネントプロパティ

名前プロパティ型マッピング説明
ファイルパスremoteFile入力&出力 書き込むExcelファイルのパスを指定します。このファイルが存在しない場合、空のワークブックを作成して書き込みを行います。
更新されたファイルはバイナリイメージとしてストリームに出力されます。ファイルを更新を「いいえ」にした場合には、このファイル自体は更新されません。
相対パスの場合はファイルパスの起点の指定に基づいて解釈されます。
ファイルパスの起点pathResolverファイルパスが相対パス指定の場合にベースディレクトリを指定します。
プロジェクトフォルダ [Relative]
プロジェクトファイルと同じフォルダを起点にします。
ホームディレクトリ [ProjectOwner]
ユーザーのホームディレクトリを起点にします。
実行ユーザーのホームディレクトリ [ExecuteUser]
実行ユーザーのホームディレクトリを起点にします。
書出し処理choice入力&出力 Excelビルダーで定義したワークブック上のレコード領域に対する出力方法を指定します。ワークブックファイルやワークシートに対する書き込み方法ではないことに注意してください。レコードを特定するキーとなるフィールドは、Excelビルダー上で設定します。
レコード領域にすべてのレコードが書ききれなかった場合、エラーになります。追加, 挿入(キー指定)で出力する場合でも、レコード領域に空白行がない場合はエラーになります。レコード領域は自動的には拡張されません。
レコード領域が非常に大きく定義されている場合には、上書きの方がクリア&上書きよりも速度的に有利です。
ループの中でマッパーにより値が差し込まれた場合は、初回のみが有効となります
クリア&上書き [Override] - レコード領域をクリアして先頭行から出力します。
上書き [OverrideNonClear] - レコード領域をクリアせずに先頭行から出力します。
追加 [Append] - レコード領域のキーとなるフィールド値が最後に一致した行の後ろに追加します。キー指定がない、またはキーと一致するものがない場合は最終空白行に追加します。
挿入(キー指定) [Insert] - レコード領域のキーとなるフィールド値が最初に一致した行の前に挿入します。キー指定がない、またはキーと一致するものがない場合は先頭行に挿入します。
更新(キー指定) [Update] - レコード領域のキーとなるフィールド値が最初に一致した行のみ更新します。キー指定がない、またはキーと一致するものがない場合は最終空白行に追加します。
削除(キー指定) [Delete] - レコード領域のキーとなるフィールド値が最初に一致した行のみ削除します。キー指定がない場合、全レコードを削除します。
キーと一致するものがない場合はなにもしません。
ファイルを更新boolean入力&出力ファイルパスで指定したExcelファイルを更新するかどうか指定します。
はい [true] - Excelファイルを更新します。
いいえ [false] - 更新は行わず、更新されたファイルイメージをストリームにのみ出力します。
数値がnullの場合の処理choice入力&出力 シート上のセルに数値を書き込む際、数値がNullの場合に書き込む値を指定します。
0を書き込む [Zero] - 0を書き込みます。
空文字列を書き込む [Empty] - 空文字列を書き込みます。
シートcategory入力&出力 Excelビルダーで単一セル・レコードを定義したときのシート名が「定義上のシート名」にリストされます。各シートに対応する「書き出すシート名」に値を指定すると、定義したときのシート名に置き換えて、このシート名のセルにデータを出力します。
指定したシートがワークブック上に存在しない場合は、シートが新規に作成されます。「シートの作成」が「新規に作成」の場合、空のワークシートが作成され、「コピー」の場合、「定義上のシート名」をコピーして作成されます。
書き出すシート名」はマッパーで値を変更可能なので、出力するシートをフロー中で動的に選択することができます。
単一セルcategory入力&出力 Excelファイル中の、Excelビルダーで定義した単一セル領域です。フロー実行時に、対応するセルにこのプロパティの値を書き込みます。
フィールド名の定義はExcelビルダー上で行い、フローデザイナー上では変更できません。

■トランザクション処理

コミット何もしません。
ロールバック何もしません。

■エラー処理

タイプパラ
メータ
エラー処理フロー
へのストリーム
エラー
コード
説明
汎用
No.名前説明
1FilePathエラー発生時のファイルパスの値
コンポーネントの入力ストリーム なし レコード領域が一杯で書き込めなかった場合。
なし ファイルパスで指定されたファイルに書き込めなかった場合
なし ファイルパスの起点が「実行ユーザーのホームディレクトリ」の場合に実行ユーザーが存在しないため相対パスが解決できなかった場合
なし サポートされない形式のExcelファイルを開こうとした場合。
Excel95以前の形式のExcelファイルは、Excel97形式で保存し直す必要があります。

■制限事項

書き込み可能なファイル、データについて

Excel97以降の形式のExcelファイルに書き込み可能です。Excel95以前の形式はサポートされません。

シートタブを使用してワークシートのコピーを行う場合、コピー元ワークシートのVBAマクロはコピーされません。

1ファイルに最大5MBまでの書き込みをサポートします。ただし1セル中の文字列は最大8KB(全角4096文字)までとします。

値の型セル数の目安
数値30万セル
文字列20万セル(4バイト、全角2文字程度の場合)
5万セル(80バイト、全角40文字程度の場合)
600セル(8KB、全角4096文字程度の場合)
Excelフォーマットでは1セルごとに10バイトから20バイト程度の付加情報があるため書き込むデータ量に比較してセル数は減少します。

複数レコード使用時の制限について

コンポーネントアイコンの右クリックメニューからExcel(Output)コンポーネントとExcelSlim(Output)コンポーネントを切り替える機能は、レコードが複数定義されている場合は動作しません。

■結合セルについて

本コンポーネントで、結合セルに値または書式情報を書き込む場合、結合セル範囲の左上のアドレスを指定してください。
たとえば、単一セルの場合、結合セルC3:D5にデータを書き込む場合、C3を指定します。
レコード領域の場合も同様に、1レコード1行の場合であれば、結合セルの一番左のフィールドに、1レコード複数行の場合であれば、結合セルの一番左上のフィールドに書き込むようにします。

■Excelワークブックファイルの書き出しについて

本コンポーネントは、Excelワークブックファイルのイメージをメモリ上に作成し、バイナリストリームとして次のコンポーネントに渡します。関連するプロパティにより、次のように動作します。

■色名称文字列

本コンポーネントでエクセルファイルの書式情報から入出力に使用される色名称文字列は以下の通りです。
これはエクセルの標準色パレットに基づくものです。ユーザ定義のパレットはサポートされません。
書き込み時に大文字小文字は区別されません。読み込み時には小文字の名称となります。
名称色見本RGB16進数値
aqua 33cccc
black 000000
blue 0000ff
blue gray 666699
bright green 00ff00
brown 993300
coral ff8080
dark blue 000080
dark green 003300
dark purple 660066
dark red 800000
dark teal 003366
dark yellow 808000
gold ffcc00
gray 25% c0c0c0
gray 40% 969696
gray 50% 808080
gray 80% 333333
green 008000
ice blue ccccff
indigo 333399
ivory ffffcc
lavender cc99ff
light blue 3366ff
light green ccffcc
light orange ff9900
light turquoise ccffff
light yellow ffff99
lime 99cc00
ocean blue 0066cc
olive green 333300
orange ff6600
pale blue 99ccff
periwinkle 9999ff
pink ff00ff
plum 993366
red ff0000
rose ff99cc
sea green 339966
sky blue 00ccff
tan ffcc99
teal 008080
teal 008080
turquoise 00ffff
violet 800080
white ffffff
yellow ffff00

■Excelビルダーの使い方

●Excelを使用するフローの開発手順

Excel(Output)コンポーネントを使ってExcelファイルを生成するフローを作成するには、次のような手順を用います。

Excel(Output)コンポーネントでは、コンポーネントプロパティの「単一セル」タブに指定した単一データ、コンポーネントのストリームペインに定義したレコードデータを、出力するExcelワークシートの対応するセルやレコード領域に差し込むことができます。Excel(Output)コンポーネントの直前にMapperコンポーネントを配置することで、これらのデータを動的に差し込むことができます。

  1. フロー内にExcel(Output)コンポーネントを配置し、入力ストリームとしてRecordまたはXMLデータを渡す。
  2. Excel(Output)コンポーネントでExcelビルダーを起動する。Excelビルダーでは、テンプレートとなるExcelワークシートファイルを使用して、データを保存したいセルやレコード範囲をマウスで指定する。
  3. Excel(Output)コンポーネントのコンポーネントプロパティの「単一タブ」で、保存するセルのデータ型の指定を行う。
  4. Excel(Output)コンポーネントのストリームペインで、保存するレコードフィールドのデータ型の指定を行う。
  5. Excel(Output)コンポーネント上で新規又は既存ファイルのファイルパスを設定する。
  6. Excel(Output)コンポーネントのプロパティで、レコードの保存方法を挿入、追加、更新などの中から選択する。

●Excelビルダーの起動

Excelビルダーは、Excel97-2007上で動作するアドオンソフトウェアで、利用するには前記バージョンのMicrosoft Excelがあらかじめインストールされている必要があります。またマクロとして動作するため、Excel上でマクロの実行権限を「中」以下に設定する必要があります。

Excelビルダーを起動するには以下の手順で行います。

  1. Excelビルダーは、Excel(Output)コンポーネントを右クリックして表示されるメニューの「Excelビルダー」をクリックするか、またはExcel(Output)コンポーネントをダブルクリックします。
  2. Excelビルダーを起動させるメニューを実行すると、Microsoft Excelが起動します。このExcelには、「Infoteria ExcelBuilder」マクロアイコンが含まれています。
  3. データの入出力を行うためのテンプレートとなる任意のExcelワークシートを開きます。
  4. ExcelビルダーアイコンをクリックしてExcelビルダーダイアログボックスを表示させます。

●「単一セル」

単一セルタブは、セル単位でデータの出力を行うために、対象となるセルの設定を行います。Excelビルダーでは、これらのプロパティ、ストリームと、ワークシート上のセル領域との関連づけを行うことができます。単一セルを設定するには、「単一セル」タブを使用します。

追加

単一セル定義を追加します。「追加」ボタンをクリックすると、範囲指定のダイアログが表示されるので、Excelのワークシート上で単一のセルをポイントするか、セル位置を入力して、「OK」をクリックします。

続いて、項目入力のダイアログが表示されるので、項目名を入力し、「OK」をクリックします。この項目名はExcelコンポーネントの単一セルプロパティにおけるフィールド名になります。データの出力に結び付けたいセルの個数分、上記作業を繰り返します。追加されたセル定義は、「単一セル」タブに一覧表示されます。

変更

選択した単一セル定義を変更します。「変更」ボタンをクリックすると、範囲指定のダイアログが表示されるので、変更する場合は新しい値を入力します。変更しない場合はそのまま「OK」をクリックします。

続いて、項目入力のダイアログが表示されるので、変更する場合は新しい値を入力し、「OK」をクリックします。途中で「キャンセル」をクリックすると、セル定義は変更されません。

削除

選択した単一セル定義を削除します。削除したい単一セル定義を選択し、「削除」ボタンをクリックすると、項目が削除されます。

書式情報の設定

選択した単一セル定義について、どの書式情報を出力対象とするか設定できます。書式を書き込みたい単一セル定義を選択し、画面右側の「出力対象書式」ボックスから書き込みたい書式情報のチェックボックスをONにします。
出力対象とした書式情報は、単一セルの項目名の後ろに以下のような文字列を付加した形で、単一セルプロパティにおけるフィールド名になります。

  背景色      : [項目名]_Background
  文字色      : [項目名]_FontColor
  文字フォント: [項目名]_FontName
  文字サイズ  : [項目名]_FontSize
  文字スタイル: [項目名]_FontStyle
  表示形式    : [項目名]_Format        (※ExcelSlim(Output)では対応外)
  計算式      : [項目名]_Formula
  コメント    : [項目名]_Comment       (※Excel(Output)では対応外)

●「レコード」の設定

レコードタブは、レコード単位でデータの出力を行うために、対象となるレコード領域の設定を行います。レコード形式の繰り返しデータをExcelに書き込むには、レコード領域を設定します。レコード領域の設定には「レコード」タブを使用します。
レコード領域は複数設定することが可能です。レコード領域を複数設定すると、レコードの数だけExcel(Output)コンポーネントの入力コネクタが増やされ、ストリームペインにフィールド定義が追加されます。
1レコードが複数行にわたるレコード領域も定義できます。その場合、レコード領域全体の行数が1レコードあたりの行数の整数倍になるように設定してください。

追加

レコード領域の定義を追加します。「追加」ボタンをクリックすると、範囲指定のダイアログが表示されるので、Excelのワークシート上で矩形領域を指定するか、セル領域を入力して、「OK」をクリックします。

続いて、レコード名入力のダイアログが表示されるので、レコード名を入力し、「OK」をクリックします。

次に、1レコードあたりの行数の入力ダイアログが表示されるので、1レコード複数行の場合は適宜変更し、「OK」をクリックします。レコード範囲として設定した領域が登録されます。

変更

選択したレコード領域の定義を変更します。「変更」ボタンをクリックすると、範囲指定のダイアログが表示されるので、変更する場合は新しい値を入力します。変更しない場合はそのまま「OK」をクリックします。

続いて、レコード名入力のダイアログが表示されるので、変更する場合は新しい値を入力し、「OK」をクリックします。途中で「キャンセル」をクリックすると、レコード領域の定義は変更されません。

次に、1レコードあたりの行数の入力ダイアログが表示されるので、変更する場合は新しい値を入力し、「OK」をクリックします。

削除

選択したレコード領域の定義を削除します。削除したいレコード領域の定義を選択し、「削除」ボタンをクリックすると、レコード領域の定義が削除されます。

レコードフィールド領域

レコード内のフィールド名を定義します。レコード領域の定義を選択すると、レコードフィールド領域にフィールドの「列(カラム)」と「行(ロー)」と「フィールド名」が表示されます。「行」は1レコードあたり複数行の場合のみ表示されます。フィールド名はExcel(Output)コンポーネントの入力ストリームにおけるフィールド名となります。初期状態ではフィールド名は「列」と「行」を組み合わせた文字列となります。

変更

フィールド名を変更したい場合は、フィールドを選択して「変更」ボタンをクリックします。フィールド名を入力するダイアログが表示されるので、新しい値を入力し、「OK」をクリックします。「キャンセル」をクリックするとフィールド名は変更されません。
続いて、「キー指定可能なフィールドですか?」とダイアログが表示されるので、書出し処理プロパティの値が追加挿入(キー指定)更新(キー指定)削除(キー指定)の時のキーとする場合には「はい」をクリックします。

書式情報の設定

各フィールドについて、どの書式情報を出力対象とするか設定できます。書式を書き込みたいフィールドを選択し、画面右側の「出力対象書式」ボックスから書き込みたい書式情報のチェックボックスをONにします。
出力対象とした書式情報は、フィールド名の後ろに以下のような文字列を付加した形で、入力ストリームにおけるフィールド名になります。

  背景色      : [フィールド名]_Background
  文字色      : [フィールド名]_FontColor
  文字フォント: [フィールド名]_FontName
  文字サイズ  : [フィールド名]_FontSize
  文字スタイル: [フィールド名]_FontStyle
  表示形式    : [フィールド名]_Format        (※ExcelSlim(Output)では対応外)
  計算式      : [フィールド名]_Formula
  コメント    : [フィールド名]_Comment       (※Excel(Output)では対応外)

●書式情報

単一セルの各項目、レコードの各レコードフィールドについて、書式情報を書き込むように設定した場合、実際にエクセルファイルに書き込み可能な値は次のようになります。

(※ExcelSlim(Output)では表示形式の出力は対応外)
(※Excel(Output)ではコメントの出力は対応外)

●Excelビルダーの終了

設定を完了したら、Excelビルダーの「登録」ボタンをクリックして設定情報を登録し、Excelビルダーを終了します。

登録

設定情報を登録します。「登録」ボタンをクリックすると、設定情報が登録され、Excelビルダーを終了します。

閉じる

Excelビルダーを終了します。「閉じる」ボタンをクリックすると、設定情報は登録されずに、Excelビルダーを終了します。Excelビルダーを終了後、さらにExcelを終了させると、フローデザイナーに戻ります。

●Excelコンポーネントのインスペクタ

Excelビルダーによってセルやレコードが定義され、登録されるとExcelコンポーネントのインスペクタ上のシートタブ、単一セルタブ、ストリームペインに設定された情報が登録されます。これらのデータはExcelコンポーネントにMapperコンポーネントを接続することでフロー内で変更が可能です。